Package com.alvazan.orm.api.z8spi.action

Examples of com.alvazan.orm.api.z8spi.action.Column


    }
  }

  private void addColumn(PROXY proxy, Field singleField, byte[] idValue, RowToPersist row) {
    Object value = ReflectionUtil.fetchFieldValue(proxy, singleField);
    Column c = new Column();
    byte[] columnName = formTheColumnName(proxy, idValue, singleField);
    c.setName(columnName);
    if (value != null) {
      byte[] columnValue = StandardConverters.convertToBytes(value);
      c.setValue(columnValue);
    }
    row.getColumns().add(c);
  }
View Full Code Here


    return entities;
  }

  private void addColumnWithoutId(PROXY proxy, Field singleField, RowToPersist row) {
    Object value = ReflectionUtil.fetchFieldValue(proxy, singleField);
    Column c = new Column();
    //byte[] columnName = formTheColumnName(proxy, idValue, singleField);

    byte[] prefix = StandardConverters.convertToBytes(columnName);
    byte[] singleFieldName = StandardConverters.convertToBytes(singleField.getName());
    byte[] columnName = new byte[ prefix.length + singleFieldName.length];
    for (int i = 0; i < columnName.length; i++) {
      if (i < prefix.length)
        columnName[i] = prefix[i];
      else
        columnName[i] = singleFieldName[i - prefix.length];
    }
    c.setName(columnName);
    if (value != null) {
      byte[] columnValue = StandardConverters.convertToBytes(value);
      c.setValue(columnValue);
    }
    row.getColumns().add(c);
  }
View Full Code Here

      DboColumnMeta colMeta = col.getColumnMeta();
      if(colMeta != null)
        continue;
     
      List<Column> columns = row.getColumns();
      Column c = new Column();
      c.setName(col.getNameRaw());
      c.setValue(col.getValueRaw());
      columns.add(c);
    }
   
    return row;
  }
View Full Code Here

   
    //now process all the existing columns (we can add same entity as many times as we like and it does not
    //get duplicated)
    for(T val : toBeAdded) {
      byte[] name = formTheName(val);
      Column c = new Column();
      c.setName(name);
     
      row.getColumns().add(c);
    }
  }
View Full Code Here

   
    //now process all the existing columns (we can add same entity as many times as we like and it does not
    //get duplicated)
    for(PROXY proxy : toBeAdded) {
      byte[] name = formTheName(proxy);
      Column c = new Column();
      c.setName(name);
     
      row.getColumns().add(c);
    }
  }
View Full Code Here

  }

  public void translateFromColumn(Row row, OWNER entity, NoSqlSession session) {
    String columnName = getColumnName();
    byte[] colBytes = StandardConverters.convertToBytes(columnName);
    Column column = row.getColumn(colBytes);
    if(column == null) {
      column = new Column();
    }
    Object proxy;
    if(field.getType().equals(ToOneProvider.class)) {
      proxy = translateFromToComposite(row, session);
      if (proxy == null)
        proxy = translateFromToProxy(row, column.getValue(), session);
    }
    else {
      proxy = convertIdToProxyComposite(row, session);
      if (proxy == null)
        proxy = convertIdToProxy(row, column.getValue(), session);
    }
    ReflectionUtil.putFieldValue(entity, field, proxy);
  }
View Full Code Here

  private Object translateFromToComposite(Row row, NoSqlSession session) {
    byte[] bytes = StandardConverters.convertToBytes(columnName);
    Collection<Column> columns = row.columnByPrefix(bytes);
    if (columns != null && !columns.isEmpty()) {
      Column column = columns.iterator().next();
      byte[] fullName = column.getName();
      //strip off the prefix to get the foreign key
      int pkLen = fullName.length-bytes.length;
      byte[] fk = new byte[pkLen];
      for(int i = bytes.length; i < fullName.length; i++) {
        fk[i-bytes.length] =  fullName[i];
View Full Code Here

  private Object convertIdToProxyComposite(Row row, NoSqlSession session) {
    byte[] bytes = StandardConverters.convertToBytes(columnName);
    Collection<Column> columns = row.columnByPrefix(bytes);
    if (columns != null && !columns.isEmpty()) {
      Column column = columns.iterator().next();
      byte[] fullName = column.getName();
      //strip off the prefix to get the foreign key
      int pkLen = fullName.length-bytes.length;
      byte[] fk = new byte[pkLen];
      for(int i = bytes.length; i < fullName.length; i++) {
        fk[i-bytes.length] =  fullName[i];
View Full Code Here

  @SuppressWarnings("unchecked")
  public void translateToColumn(InfoForIndex<OWNER> info) {
    OWNER entity = info.getEntity();
    RowToPersist row = info.getRow();
    Column col = new Column();
    row.getColumns().add(col);

    PROXY value = (PROXY) ReflectionUtil.fetchFieldValue(entity, field);
   
    if(value instanceof ToOneProvider) {
      value = (PROXY) ((ToOneProvider)value).get();
    }

    //Value is the Account.java or a Proxy of Account.java field and what we need to save in
    //the database is the ID inside this Account.java object!!!!
    byte[] byteVal = classMeta.convertEntityToId(value);
    if(byteVal == null && value != null) {
      //if value is not null but we get back a byteVal of null, it means the entity has not been
      //initialized with a key yet, BUT this is required to be able to save this object
      String owner = "'"+field.getDeclaringClass().getSimpleName()+"'";
      String child = "'"+field.getType().getSimpleName()+"'";
      String fieldName = "'"+field.getType().getSimpleName()+" "+field.getName()+"'";
      throw new ChildWithNoPkException("The entity you are saving of type="+owner+" has a field="+fieldName
          +" that does not yet have a primary key so you cannot save it.  To correct this\n" +
          "problem, you can either\n"
          +"1. SAVE the "+child+" BEFORE you save the "+owner+" OR\n"
          +"2. Call entityManager.fillInWithKey(Object entity), then SAVE your "+owner+"', then save your "+child+" NOTE that this" +
              "\nmethod #2 is used for when you have a bi-directional relationship where each is a child of the other");
    }

    byte[] colBytes = StandardConverters.convertToBytes(columnName);
    if(byteVal != null) {
      byte[] name = new byte[colBytes.length + byteVal.length];
      for(int i = 0; i < name.length; i++) {
        if(i < colBytes.length)
          name[i] = colBytes[i];
        else
          name[i] = byteVal[i-colBytes.length];
      }
      col.setName(name);
      StorageTypeEnum storageType = getStorageType();
      Object primaryKey = classMeta.fetchId(value);
      addIndexInfo(info, primaryKey, byteVal, storageType);
      removeIndexInfo(info, primaryKey, byteVal, storageType);
    }
    else {
      col.setName(colBytes);
      col.setValue(byteVal);
      StorageTypeEnum storageType = getStorageType();
      Object primaryKey = classMeta.fetchId(value);
      addIndexInfo(info, primaryKey, byteVal, storageType);
      removeIndexInfo(info, primaryKey, byteVal, storageType);
    }
View Full Code Here

  private void processColumns(List<org.apache.hadoop.hbase.KeyValue> hKeyValue, Row r) {
    for (org.apache.hadoop.hbase.KeyValue col : hKeyValue) {
      r.setKey(col.getRow());
      byte[] name = col.getQualifier();
      byte[] val = col.getValue();
      Column c = new Column();
      c.setName(name);
      if (val.length != 0)
        c.setValue(val);
      r.put(c);
    }
  }
View Full Code Here

TOP

Related Classes of com.alvazan.orm.api.z8spi.action.Column

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.