public <B extends TransientObject> Wrapper(B b){ Key(b.getObjectKey()); Table(Query.safeTable(b.getObjectType())); recursiveSave("user_data", "", b.getUserData()); recursiveSave("meta_data", "", b.getMetaData()); if(DEBUG) System.out.println("Table: " + b.getObjectType()); if(DEBUG) System.out.println("Key: " + b.getObjectKey()); }
@Override public void put(String key, Object value){ super.put(key,value); meta_data.clear(); } }
/** * Sets the user id for this object. Once set this can not be changed. * @param userId user id to be set. */ @Override public void setOwnerId(Integer userId){ super.setOwnerId(userId); }
@Override public boolean exists(TransientObject... objects) { if(objects.length == 0) return false; boolean found = true; for(TransientObject o : objects){ Wrapper o1 = iBoxUtils.GetFrist(box.select(Wrapper.class,"from Wrapper where Key==? && Table==?", o.getObjectKey(), o.getObjectType() )); if(o1 == null) found = false; } return found; }
@Override public boolean exists(TransientObject... objects) { checkDb(); if(objects.length == 0) return false; StringBuilder sb = new StringBuilder(); sb.append("SELECT * FROM " + Query.safeTable(objects[0].getClass()) + " WHERE "); for(int x=0;x<objects.length;x++){ sb.append("meta_data.object_key = '" + objects[x].getObjectKey() +"'"); if(x+1<objects.length) sb.append( " OR "); } List<ODocument> list = db.query(new OSQLSynchQuery<ODocument>(sb.toString())); return objects.length == list.size(); }
@Override public void delete(T1... objects) throws DAOException { String[] keys = new String[objects.length]; for(int x=0;x<objects.length;x++){ keys[x]=objects[x].getObjectKey(); } Iterable<Wrapper> x = internalGet(objects[0].getObjectType(), keys); for(Wrapper wr : x){ box.delete("Wrapper", wr); } // String[] keys = new String[objects.length]; // for(int x=0;x<objects.length;x++){ // keys[x]=objects[x].getObjectKey(); // } // // String table = objects[0].getObjectType(); // // Iterable<Wrapper> toDelete = internalGet(table, keys); // // box.delete("Wrapper", ObjectUtils.toArray(Wrapper.class, toDelete)); }
@Override public void save(T1... objects) throws DAOException { for(TransientObject b : objects){ try { boolean exists = exists(b); System.out.println("Exists: " + exists); if(exists) { System.out.println("update: "+ b.getObjectKey()); box.update("Wrapper", new Wrapper(b)); } else { System.out.println("insert: " + b.getObjectKey()); box.insert("Wrapper", new Wrapper(b)); } } catch (CommitExpection e){ e.printStackTrace(); throw new DAOException(e); } } }
public <B extends TransientObject> ODocumentWrapper(B b){ super(); String className = b.getObjectType(); this.setAllowChainedAccess(true); this.setLazyLoad(false); Map user = b.getUserData(); Map meta = b.getMetaData(); field(indexAttribute, b.getObjectKey(), OType.STRING); field("user_data", user); field("meta_data", meta);
.select() .from(objects[0].getClass()) .where(TransientObject.OBJECT_KEY, OPERAND.EQ, objects[0].getObjectKey()); builder.or(TransientObject.OBJECT_KEY, OPERAND.EQ, objects[x].getObjectKey());
o.put("count",objects); list.add(o); System.out.println("Delete: " + objects);