Пример #1
0
 private TypeMetadataSet<EntityTypeMetadata<EntityMetadata>> getEffectiveTypes(
     Class<?> type, Class<?>... types) {
   MetadataProvider<EntityMetadata, EntityDiscriminator, RelationMetadata, RelationDiscriminator>
       metadataProvider = sessionContext.getMetadataProvider();
   TypeMetadataSet<EntityTypeMetadata<EntityMetadata>> effectiveTypes = new TypeMetadataSet<>();
   effectiveTypes.add(metadataProvider.getEntityMetadata(type));
   for (Class<?> otherType : types) {
     effectiveTypes.add(metadataProvider.getEntityMetadata(otherType));
   }
   return effectiveTypes;
 }
Пример #2
0
  @Override
  public int getColumnType(int index) {
    String runtimeTypeName =
        provider.getStringValue(adjustColumn(index), ResultsMetadataConstants.DATA_TYPE);

    JcrType typeInfo = JcrType.typeInfo(runtimeTypeName);
    return typeInfo != null ? typeInfo.getJdbcType() : Types.VARCHAR;
  }
Пример #3
0
 private <S, R, T> R createByExample(
     S from,
     Class<R> relationType,
     T to,
     Map<PrimitivePropertyMethodMetadata<PropertyMetadata>, Object> example) {
   MetadataProvider<EntityMetadata, EntityDiscriminator, RelationMetadata, RelationDiscriminator>
       metadataProvider = sessionContext.getMetadataProvider();
   AbstractRelationPropertyMethodMetadata<?> fromProperty =
       metadataProvider.getPropertyMetadata(from.getClass(), relationType, FROM);
   AbstractRelationPropertyMethodMetadata<?> toProperty =
       metadataProvider.getPropertyMetadata(to.getClass(), relationType, TO);
   Entity entity = sessionContext.getEntityInstanceManager().getDatastoreType(from);
   R instance =
       sessionContext
           .getEntityPropertyManager()
           .createRelationReference(entity, fromProperty, to, toProperty, example);
   sessionContext.getInstanceListenerService().postCreate(instance);
   return instance;
 }
Пример #4
0
 @Override
 public <T, M> CompositeObject migrate(
     T instance,
     MigrationStrategy<T, M> migrationStrategy,
     Class<M> targetType,
     Class<?>... targetTypes) {
   AbstractInstanceManager<EntityId, Entity> entityInstanceManager =
       sessionContext.getEntityInstanceManager();
   Entity entity = entityInstanceManager.getDatastoreType(instance);
   DatastoreSession<
           EntityId,
           Entity,
           EntityMetadata,
           EntityDiscriminator,
           RelationId,
           Relation,
           RelationMetadata,
           RelationDiscriminator,
           PropertyMetadata>
       datastoreSession = sessionContext.getDatastoreSession();
   Set<EntityDiscriminator> entityDiscriminators =
       datastoreSession.getDatastoreEntityManager().getEntityDiscriminators(entity);
   MetadataProvider<EntityMetadata, EntityDiscriminator, RelationMetadata, RelationDiscriminator>
       metadataProvider = sessionContext.getMetadataProvider();
   TypeMetadataSet<EntityTypeMetadata<EntityMetadata>> types =
       metadataProvider.getTypes(entityDiscriminators);
   TypeMetadataSet<EntityTypeMetadata<EntityMetadata>> effectiveTargetTypes =
       getEffectiveTypes(targetType, targetTypes);
   Set<EntityDiscriminator> targetEntityDiscriminators =
       metadataProvider.getEntityDiscriminators(effectiveTargetTypes);
   datastoreSession
       .getDatastoreEntityManager()
       .migrateEntity(
           entity, types, entityDiscriminators, effectiveTargetTypes, targetEntityDiscriminators);
   entityInstanceManager.removeInstance(instance);
   CompositeObject migratedInstance = entityInstanceManager.updateInstance(entity);
   if (migrationStrategy != null) {
     migrationStrategy.migrate(instance, migratedInstance.as(targetType));
   }
   entityInstanceManager.closeInstance(instance);
   return migratedInstance;
 }
Пример #5
0
 @Override
 public String getTableName(int index) {
   String name = provider.getStringValue(adjustColumn(index), ResultsMetadataConstants.TABLE);
   if (name != null) {
     int dotIndex = name.indexOf('.');
     if (dotIndex != -1) {
       return name.substring(dotIndex + 1);
     }
   }
   return name;
 }
Пример #6
0
 @Override
 public String getSchemaName(int index) {
   String name = provider.getStringValue(adjustColumn(index), ResultsMetadataConstants.SCHEMA);
   if (name != null) {
     int dotIndex = name.indexOf('.');
     if (dotIndex != -1) {
       return name.substring(0, dotIndex);
     }
   }
   return null;
 }
Пример #7
0
 @Override
 public int isNullable(int index) {
   Object nullable = provider.getValue(adjustColumn(index), ResultsMetadataConstants.NULLABLE);
   if (nullable.equals(ResultsMetadataConstants.NULL_TYPES.NULLABLE)) {
     return columnNullable;
   } else if (nullable.equals(ResultsMetadataConstants.NULL_TYPES.NOT_NULL)) {
     return columnNoNulls;
   } else {
     return columnNullableUnknown;
   }
 }
Пример #8
0
 @Override
 public boolean isCaseSensitive(int index) {
   return provider.getBooleanValue(adjustColumn(index), ResultsMetadataConstants.CASE_SENSITIVE);
 }
Пример #9
0
 @Override
 public int getScale(int index) {
   return provider.getIntValue(adjustColumn(index), ResultsMetadataConstants.SCALE);
 }
Пример #10
0
 @Override
 public String getColumnTypeName(int index) {
   return provider.getStringValue(adjustColumn(index), ResultsMetadataConstants.DATA_TYPE);
 }
Пример #11
0
 @Override
 public String getColumnName(int index) {
   return provider.getStringValue(adjustColumn(index), ResultsMetadataConstants.COLUMN);
 }
Пример #12
0
 @Override
 public int getColumnDisplaySize(int index) {
   return provider.getIntValue(adjustColumn(index), ResultsMetadataConstants.DISPLAY_SIZE);
 }
Пример #13
0
 @Override
 public boolean isSigned(int index) {
   return provider.getBooleanValue(adjustColumn(index), ResultsMetadataConstants.SIGNED);
 }
Пример #14
0
 @Override
 public boolean isSearchable(int index) {
   Integer searchable =
       (Integer) provider.getValue(adjustColumn(index), ResultsMetadataConstants.SEARCHABLE);
   return !(ResultsMetadataConstants.SEARCH_TYPES.UNSEARCHABLE.equals(searchable));
 }
Пример #15
0
 @Override
 public boolean isCurrency(int index) {
   return provider.getBooleanValue(adjustColumn(index), ResultsMetadataConstants.CURRENCY);
 }
Пример #16
0
 @Override
 public int getPrecision(int index) {
   return provider.getIntValue(adjustColumn(index), ResultsMetadataConstants.PRECISION);
 }
Пример #17
0
 @Override
 public boolean isAutoIncrement(int index) {
   return provider.getBooleanValue(
       adjustColumn(index), ResultsMetadataConstants.AUTO_INCREMENTING);
 }
Пример #18
0
 @Override
 public int getColumnCount() {
   return provider.getColumnCount();
 }
Пример #19
0
 @Override
 public boolean isDefinitelyWritable(int index) {
   return provider.getBooleanValue(adjustColumn(index), ResultsMetadataConstants.WRITABLE);
 }
Пример #20
0
 @Override
 public boolean isReadOnly(int index) {
   return !provider.getBooleanValue(adjustColumn(index), ResultsMetadataConstants.WRITABLE);
 }