Package info.archinnov.achilles.internal.metadata.holder

Examples of info.archinnov.achilles.internal.metadata.holder.PropertyMeta


    }

    @Test
    public void should_get_all_managed_with_select_star_async() throws Exception {
        // Given
        PropertyMeta idMeta = PropertyMetaTestBuilder.completeBean(Void.class, Long.class).propertyName("id").type(ID).accessors().build();

        PropertyMeta nameMeta = PropertyMetaTestBuilder.completeBean(Void.class, String.class).propertyName("name").type(SIMPLE).accessors().build();

        EntityMeta meta = buildEntityMeta(idMeta, nameMeta);

        RegularStatement statement = select().from("test");
View Full Code Here



    @Test
    public void should_get_first_entity_async() throws Exception {
        // When
        PropertyMeta idMeta = PropertyMetaTestBuilder.completeBean(Void.class, Long.class).propertyName("id")
                .type(PropertyType.ID).accessors().build();

        PropertyMeta nameMeta = PropertyMetaTestBuilder.completeBean(Void.class, String.class).propertyName("name")
                .type(PropertyType.SIMPLE).accessors().build();

        EntityMeta meta = buildEntityMeta(idMeta, nameMeta);

        RegularStatement statement = select("id").from("test");
View Full Code Here

    private NativeQueryValidator validator = NativeQueryValidator.Singleton.INSTANCE.get();

    public void validateTypedQuery(Class<?> entityClass, RegularStatement regularStatement, EntityMeta meta) {
        log.debug("Validate typed query {}",regularStatement.getQueryString());
    PropertyMeta idMeta = meta.getIdMeta();
    String queryString = regularStatement.getQueryString().toLowerCase().trim();

    validateRawTypedQuery(entityClass, regularStatement, meta);

    if (!queryString.contains("select *")) {
      idMeta.forTypedQuery().validateTypedQuery(queryString);
    }
  }
View Full Code Here

        return result;
    }

    private Object interceptGetter(Method method) throws Throwable {
        Object result = null;
        PropertyMeta propertyMeta = this.getterMetas.get(method);

        // Load fields into target object
        if (!this.alreadyLoaded.contains(method)) {
            log.trace("Loading property {}", propertyMeta.getPropertyName());
            if (context.isClusteredCounter()) {
                counterLoader.loadClusteredCounterColumn(context, target, propertyMeta);
            } else {
                loader.loadPropertyIntoObject(context, target, propertyMeta);
            }
            alreadyLoaded.add(method);
        }

        log.trace("Get value from field {} on real object", propertyMeta.getPropertyName());
        Object rawValue = invoker.getValueFromField(target, propertyMeta.getField());

        // Build proxy when necessary
        switch (propertyMeta.type()) {
            case COUNTER:
                if (rawValue == null) {
                    final Counter counter = InternalCounterBuilder.initialValue(null);
                    propertyMeta.forValues().setValueToField(target, counter);
                }
                result = rawValue;
                break;
            case LIST:
                if (rawValue != null) {
                    log.trace("Build list wrapper for property {} of entity of class {} ", propertyMeta.getPropertyName(),
                            propertyMeta.getEntityClassName());

                    @SuppressWarnings("unchecked")
                    List<Object> list = (List<Object>) rawValue;
                    result = ListWrapperBuilder.builder(list).dirtyMap(dirtyMap).setter(propertyMeta.getSetter())
                            .propertyMeta(this.getPropertyMetaByProperty(method)).build();
                }
                break;
            case SET:
                if (rawValue != null) {
                    log.trace("Build set wrapper for property {} of entity of class {} ", propertyMeta.getPropertyName(),
                            propertyMeta.getEntityClassName());

                    @SuppressWarnings("unchecked")
                    Set<Object> set = (Set<Object>) rawValue;
                    result = SetWrapperBuilder.builder(set).dirtyMap(dirtyMap).setter(propertyMeta.getSetter())
                            .propertyMeta(this.getPropertyMetaByProperty(method)).build();
                }
                break;
            case MAP:
                if (rawValue != null) {
                    log.trace("Build map wrapper for property {} of entity of class {} ", propertyMeta.getPropertyName(),
                            propertyMeta.getEntityClassName());

                    @SuppressWarnings("unchecked")
                    Map<Object, Object> map = (Map<Object, Object>) rawValue;
                    result = MapWrapperBuilder.builder(map).dirtyMap(dirtyMap).setter(propertyMeta.getSetter())
                            .propertyMeta(this.getPropertyMetaByProperty(method)).build();
                }
                break;
            default:
                log.trace("Return un-mapped raw value {} for property {} of entity of class {} ",
                        propertyMeta.getPropertyName(), propertyMeta.getEntityClassName());

                result = rawValue;
                break;
        }
        return result;
View Full Code Here

                    break;
                default:
                    break;
            }
        }
        final PropertyMeta idMeta = entityMeta.getIdMeta();
        buildPrimaryKey(idMeta, createTable);
        final Create.Options tableOptions = createTable.withOptions();
        idMeta.forTableCreation().addClusteringOrder(tableOptions);
        final String tableComment = entityMeta.config().getTableComment();
        if (StringUtils.isNotBlank(tableComment)) {
            tableOptions.comment(tableComment);
        }
View Full Code Here

    private void createTableForClusteredCounter(Session session, EntityMeta meta) {
        log.debug("Creating table for clustered counter entity {}", meta.getClassName());

        final Create createTable = SchemaBuilder.createTable(meta.config().getQualifiedTableName());

        PropertyMeta idMeta = meta.getIdMeta();
        buildPrimaryKey(idMeta, createTable);
        for (PropertyMeta counterMeta : meta.getAllCounterMetas()) {
            createTable.addColumn(counterMeta.getCQL3ColumnName(), DataType.counter(),counterMeta.structure().isStaticColumn());
        }
        final Create.Options tableOptions = createTable.withOptions();
        idMeta.forTableCreation().addClusteringOrder(tableOptions);
        tableOptions.comment(meta.config().getTableComment());

        final String createTableScript = tableOptions.build();
        session.execute(createTableScript);
        DML_LOG.debug(createTableScript);
View Full Code Here

        }
        return result;
    }

    private void interceptSetter(Method method, Object obj, Object[] args) throws Throwable {
        PropertyMeta propertyMeta = this.setterMetas.get(method);

        DirtyChecker dirtyChecker = null;
        boolean removeField = false;
        if (args[0] == null) {
            removeField = true;
        }
        switch (propertyMeta.type()) {
            case SIMPLE:
                dirtyChecker = new SimpleDirtyChecker(propertyMeta);
                break;
            case SET:
                dirtyChecker = new DirtyChecker(propertyMeta);
                if (removeField)
                    dirtyChecker.removeAllElements();
                else
                    dirtyChecker.assignValue((Set) args[0]);
                break;
            case LIST:
                dirtyChecker = new DirtyChecker(propertyMeta);
                if (removeField)
                    dirtyChecker.removeAllElements();
                else
                    dirtyChecker.assignValue((List) args[0]);
                break;
            case MAP:
                dirtyChecker = new DirtyChecker(propertyMeta);
                if (removeField)
                    dirtyChecker.removeAllElements();
                else
                    dirtyChecker.assignValue((Map) args[0]);
                break;
            case COUNTER:
                throw new UnsupportedOperationException(
                        "Cannot set value directly to a Counter type. Please call the getter first to get handle on the wrapper");
            default:
                break;
        }

        log.trace("Flagging property {}", propertyMeta.getPropertyName());

        dirtyMap.put(method, dirtyChecker);
        Object value = null;
        if (args.length > 0) {
            value = args[0];
        }
        propertyMeta.forValues().setValueToField(target, value);
    }
View Full Code Here

    public void validateForEntity(EntityMeta entityMeta, TableMetadata tableMetadata, ConfigurationContext configContext) {
        log.debug("Validate existing table {} for {}", tableMetadata.getName(), entityMeta);

        // Primary key Validation
        PropertyMeta idMeta = entityMeta.getIdMeta();
        final PropertyMetaTableValidator primaryKeyValidator = idMeta.forTableValidation();
        if (entityMeta.structure().isEmbeddedId()) {
            primaryKeyValidator.validatePrimaryKeyComponents(tableMetadata, true);
            primaryKeyValidator.validatePrimaryKeyComponents(tableMetadata, false);
        } else {
            primaryKeyValidator.validateColumn(tableMetadata, entityMeta, configContext);
View Full Code Here

        Object primaryKey = context.getPrimaryKey();

        log.trace("Bind prepared statement {} with primary key {}", ps.getQueryString(), primaryKey);

        PropertyMeta idMeta = context.getIdMeta();
        List<Object> values = bindPrimaryKey(primaryKey, idMeta,onlyStaticColumns);

        BoundStatement bs = ps.bind(values.toArray());
        return new BoundStatementWrapper(context.getEntityClass(), bs, values.toArray(), getCQLLevel(consistencyLevel),
                context.getCASResultListener(), context.getSerialConsistencyLevel());
View Full Code Here

        }
        return values;
    }

    private Object[] extractValuesForSimpleCounterBinding(EntityMeta entityMeta, PropertyMeta pm, Object primaryKey) {
        PropertyMeta idMeta = entityMeta.getIdMeta();
        String fqcn = entityMeta.getClassName();
        String primaryKeyAsString = idMeta.forTranscoding().forceEncodeToJSONForCounter(primaryKey);
        String cql3ColumnName = pm.getCQL3ColumnName();

        return new Object[] { fqcn, primaryKeyAsString, cql3ColumnName };
    }
View Full Code Here

TOP

Related Classes of info.archinnov.achilles.internal.metadata.holder.PropertyMeta

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.