Package com.alvazan.orm.impl.meta.data

Source Code of com.alvazan.orm.impl.meta.data.MetaMarkerField

package com.alvazan.orm.impl.meta.data;

import java.util.List;

import com.alvazan.orm.api.z5api.NoSqlSession;
import com.alvazan.orm.api.z8spi.Row;
import com.alvazan.orm.api.z8spi.action.Column;
import com.alvazan.orm.api.z8spi.meta.DboColumnMarkerMeta;
import com.alvazan.orm.api.z8spi.meta.DboColumnMeta;
import com.alvazan.orm.api.z8spi.meta.IndexData;
import com.alvazan.orm.api.z8spi.meta.InfoForIndex;

/** field type used for entity marker support. It has constant empty value */
public class MetaMarkerField<OWNER> extends MetaAbstractField<OWNER> {

  /** field value */
  private final static byte[] MARKER = new byte[0];
  /** column name */
  private final static byte[] COLUMN = new byte[] { '_' };

  @Override
  public void translateFromColumn(Row column, OWNER entity,
      NoSqlSession session) {
    /* we do not load field from database because marker field is constant */
    /* and we do not modify entity because marker field is virtual */
  }

  @Override
  public void translateToColumn(InfoForIndex<OWNER> info) {
    Column col = new Column();
    col.setName(COLUMN);
    col.setValue(MARKER);
    info.getRow().getColumns().add(col);
  }

  @Override
  public void removingEntity(InfoForIndex<OWNER> info,
      List<IndexData> indexRemoves, byte[] rowKey) {
    /* since there are no indexes, nothing needs to be done */
  }

  @Override
  public byte[] translateValue(Object value) {
    return MARKER;
  }

  @Override
  public Object fetchField(Object entity) {
    /* this field is virtual */
    return MARKER;
  }

  @Override
  public String translateToString(Object fieldsValue) {
    return "";
  }

  @Override
  public DboColumnMeta getMetaDbo() {
    DboColumnMarkerMeta meta = new DboColumnMarkerMeta();
    return meta;
  }

  @Override
  protected Object unwrapIfNeeded(Object value) {
    // no need to unwrap
    return value;
  }

}
TOP

Related Classes of com.alvazan.orm.impl.meta.data.MetaMarkerField

TOP
Copyright © 2018 www.massapi.com. 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.