Package org.apache.gora.persistency.impl

Examples of org.apache.gora.persistency.impl.StateManagerImpl


  @SuppressWarnings("unchecked")
  private static<T extends Persistent> T getPersistent(T obj, String[] fields) {
    if(Arrays.equals(fields, obj.getFields())) {
      return obj;
    }
    T newObj = (T) obj.newInstance(new StateManagerImpl());
    for(String field:fields) {
      int index = newObj.getFieldIndex(field);
      ((PersistentBase)newObj).put(index, ((PersistentBase)obj).get(index));
    }
    return newObj;
View Full Code Here


   * Duplicate instance to keep all the objects in memory till flushing.
   * @see org.apache.gora.store.DataStore#put(java.lang.Object, org.apache.gora.persistency.Persistent)
   */
  @Override
  public void put(K key, T value) {
    T p = (T) value.newInstance(new StateManagerImpl());
    Schema schema = value.getSchema();
    for (Field field: schema.getFields()) {
      int fieldPos = field.pos();
      if (value.isDirty(fieldPos)) {
        Object fieldValue = value.get(fieldPos);
       
        // check if field has a nested structure (array, map, or record)
        Schema fieldSchema = field.schema();
        Type type = fieldSchema.getType();
        switch(type) {
          case RECORD:
            PersistentBase persistent = (PersistentBase) fieldValue;
            PersistentBase newRecord = (PersistentBase) persistent.newInstance(new StateManagerImpl());
            for (Field member: fieldSchema.getFields()) {
              newRecord.put(member.pos(), persistent.get(member.pos()));
            }
            fieldValue = newRecord;
            break;
View Full Code Here

  public T newPersistent() {
    if(cachedPersistent == null) {
      cachedPersistent = (T)super.newRecord(null, rootSchema);
      return cachedPersistent; //we can return the cached object
    }
    return (T)cachedPersistent.newInstance(new StateManagerImpl());
  }
View Full Code Here

      return old;
    } else return new ListGenericArray(size, schema);
  }
 
  public Persistent clone(Persistent persistent, Schema schema) {
    Persistent cloned = (PersistentBase)persistent.newInstance(new StateManagerImpl());
    List<Field> fields = schema.getFields();
    for(Field field: fields) {
      int pos = field.pos();
      switch(field.schema().getType()) {
        case MAP    :
View Full Code Here

  private StateManagerImpl stateManager;
  private MockPersistent persistent;
 
  @Before
  public void setUp() {
    this.stateManager = new StateManagerImpl();
    this.persistent = new MockPersistent(stateManager);
  }
View Full Code Here

    Assert.assertFalse(stateManager.isReadable(persistent, 1));
  }

  @Test
  public void testReadable2() {
    stateManager = new StateManagerImpl();
    Employee employee = new Employee(stateManager);
    Assert.assertFalse(stateManager.isReadable(employee, 0));
    Assert.assertFalse(stateManager.isReadable(employee, 1));
    employee.setName(new Utf8("foo"));
    Assert.assertTrue(stateManager.isReadable(employee, 0));
View Full Code Here

  private Utf8 name;
  private long dateOfBirth;
  private Utf8 ssn;
  private int salary;
  public Employee() {
    this(new StateManagerImpl());
  }
View Full Code Here

    PersistentBase.registerFields(Metadata.class, _ALL_FIELDS);
  }
  private int version;
  private Map<Utf8,Utf8> data;
  public Metadata() {
    this(new StateManagerImpl());
  }
View Full Code Here

  static {
    PersistentBase.registerFields(TokenDatum.class, _ALL_FIELDS);
  }
  private int count;
  public TokenDatum() {
    this(new StateManagerImpl());
  }
View Full Code Here

  private ByteBuffer content;
  private GenericArray<Utf8> parsedContent;
  private Map<Utf8,Utf8> outlinks;
  private Metadata metadata;
  public WebPage() {
    this(new StateManagerImpl());
  }
View Full Code Here

TOP

Related Classes of org.apache.gora.persistency.impl.StateManagerImpl

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.