@Override public String getName() throws JasDBStorageException { return meta.getName(); }
@Override public QueryExecutor find(QueryBuilder queryBuilder) throws JasDBStorageException { return new RemoteQueryExecutor(instance, context, meta.getName(), nodeInformation, queryBuilder); }
@Override public List<String> getIndexNames() throws JasDBStorageException { BagConnector connector = RemoteConnectorFactory.createConnector(nodeInformation, BagConnector.class); List<IndexDefinition> indexDefinitions = connector.getIndexDefinitions(context, instance, meta.getName()); List<String> indexNames = new ArrayList<>(indexDefinitions.size()); for(IndexDefinition definition : indexDefinitions) { indexNames.add(definition.getIndexName()); } return indexNames; }
@Override public void flush() throws JasDBStorageException { BagConnector connector = RemoteConnectorFactory.createConnector(nodeInformation, BagConnector.class); connector.flushBag(context, instance, meta.getName()); }
@Override public void removeEntity(String entityId) throws JasDBStorageException { EntityConnector connector = RemoteConnectorFactory.createConnector(nodeInformation, EntityConnector.class); connector.removeEntity(context, instance, meta.getName(), entityId); }
@Override public Entity getEntity(String entityId) throws JasDBStorageException { EntityConnector connector = RemoteConnectorFactory.createConnector(nodeInformation, EntityConnector.class); return connector.findById(context, instance, meta.getName(), entityId); } }
@Override public Entity addEntity(Entity entity) throws JasDBStorageException { EntityConnector connector = RemoteConnectorFactory.createConnector(nodeInformation, EntityConnector.class); return connector.insertEntity(context, instance, meta.getName(), entity); }
@Override public Entity persist(Entity entity) throws JasDBStorageException { EntityConnector connector = RemoteConnectorFactory.createConnector(nodeInformation, EntityConnector.class); return connector.updateEntity(context, instance, meta.getName(), entity); }
private List<EntityBag> getBags(DBInstance bagInstance) throws JasDBStorageException { List<Bag> bagMetas = bagInstance.getBags(); List<EntityBag> bags = new ArrayList<>(); for(Bag bagMeta : bagMetas) { bags.add(new EntityBagImpl(bagInstance.getInstanceId(), bagMeta.getName(), userSession)); } return bags; }
@Override public void removeIndex(String indexKeyName) throws JasDBStorageException { BagConnector connector = RemoteConnectorFactory.createConnector(nodeInformation, BagConnector.class); connector.removeIndex(context, instance, meta.getName(), indexKeyName); }
@Override public QueryResult getEntities() throws JasDBStorageException { EntityConnector connector = RemoteConnectorFactory.createConnector(nodeInformation, EntityConnector.class); return connector.find(context, instance, meta.getName()); }
@Override public QueryResult getEntities(int max) throws JasDBStorageException { EntityConnector connector = RemoteConnectorFactory.createConnector(nodeInformation, EntityConnector.class); return connector.find(context, instance, meta.getName(), max); }
@Override public long getDiskSize() throws JasDBStorageException { BagConnector connector = RemoteConnectorFactory.createConnector(nodeInformation, BagConnector.class); return connector.getBag(context, instance, meta.getName()).getDiskSize(); }
private EntityBag getBag(DBInstance bagInstance, String bagName) throws JasDBStorageException { Bag bagMeta = bagInstance.getBag(bagName); if(bagMeta != null) { return new EntityBagImpl(bagInstance.getInstanceId(), bagMeta.getName(), userSession); } else { return null; } }
@Override public long getSize() throws JasDBStorageException { BagConnector connector = RemoteConnectorFactory.createConnector(nodeInformation, BagConnector.class); return connector.getBag(context, instance, meta.getName()).getSize(); }
@Override public QueryExecutor find(QueryField queryField, SortParameter... params) throws JasDBStorageException { QueryBuilder queryBuilder = new QueryBuilder(); queryBuilder.field(queryField); setSortParams(queryBuilder, params); return new RemoteQueryExecutor(instance, context, meta.getName(), nodeInformation, queryBuilder); }
@Override public QueryExecutor find(CompositeQueryField queryFields, SortParameter... params) throws JasDBStorageException { QueryBuilder queryBuilder = new QueryBuilder(); for(QueryField queryField : queryFields.getFields()) { queryBuilder.field(queryField); } setSortParams(queryBuilder, params); return new RemoteQueryExecutor(instance, context, meta.getName(), nodeInformation, queryBuilder); }
@Override public void ensureIndex(CompositeIndexField queryFields, boolean isUnique, IndexField... valueFields) throws JasDBStorageException { BagConnector connector = RemoteConnectorFactory.createConnector(nodeInformation, BagConnector.class); KeyInfo keyInfo = new KeyInfoImpl(queryFields.getIndexFields(), Lists.newArrayList(valueFields)); connector.createIndex(context, instance, meta.getName(), new IndexDefinition(keyInfo.getKeyName(), keyInfo.keyAsHeader(), keyInfo.valueAsHeader(), -1), isUnique); }
@Override public void ensureIndex(IndexField indexField, boolean isUnique, IndexField... valueFields) throws JasDBStorageException { BagConnector connector = RemoteConnectorFactory.createConnector(nodeInformation, BagConnector.class); KeyInfo keyInfo = new KeyInfoImpl(indexField, valueFields); connector.createIndex(context, instance, meta.getName(), new IndexDefinition(keyInfo.getKeyName(), keyInfo.keyAsHeader(), keyInfo.valueAsHeader(), -1), isUnique); }
public static SimpleEntity toEntity(Bag bag) throws JasDBStorageException { SimpleEntity entity = new SimpleEntity(); entity.addProperty(Constants.META_TYPE, Constants.BAG_TYPE); entity.addProperty(Constants.INSTANCE, bag.getInstanceId()); entity.addProperty(Constants.NAME, bag.getName()); for(IndexDefinition indexDefinition : bag.getIndexDefinitions()) { entity.addProperty(Constants.INDEXES, indexDefinition.toHeader()); } return entity; }