当前位置: 首页>>代码示例>>Java>>正文


Java Accessor类代码示例

本文整理汇总了Java中com.datastax.driver.mapping.annotations.Accessor的典型用法代码示例。如果您正苦于以下问题:Java Accessor类的具体用法?Java Accessor怎么用?Java Accessor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Accessor类属于com.datastax.driver.mapping.annotations包,在下文中一共展示了Accessor类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: generate

import com.datastax.driver.mapping.annotations.Accessor; //导入依赖的package包/类
/**
 * Kicks off DAL generation.
 * @param tables the cassandra table meta data
 * @throws IOException if write to file fails
 */
public static void generate(Collection<TableMetadata> tables) throws IOException {
    String namespaceToUse = MetaData.instance.getDalNamespace();

    for (TableMetadata table : tables) {
        String rawName = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, table.getName());
        String name = rawName + "Accessor";

        ClassName entityTable = ClassName.get(MetaData.instance.getTableNamespace(), rawName);

        TypeSpec.Builder accessorBuilder = TypeSpec.interfaceBuilder(name)
                .addModifiers(Modifier.PUBLIC);

        accessorBuilder.addAnnotation(Accessor.class);

        List<ColumnMetadata> pKeyColumns = table.getPrimaryKey();
        List<ColumnMetadata> partitionKeyColumns = table.getPartitionKey();

        int partitionKeys = partitionKeyColumns.size();
        // if there is only 1 key or there's just the partition key without clustering keys
        if (isSingleValueKeyedTable(table)) {
            accessorBuilder.addMethod(generateAll(table, entityTable));
        } else {
            // if there are clustering keys after the partition key we need to start at the partition key
            int count = partitionKeys > 1 ? partitionKeys : 1;
            while (count < pKeyColumns.size()) {
                accessorBuilder.addMethod(generateSpecificGet(table, entityTable, count));
                count++;
            }
        }

        accessorBuilder.addJavadoc(GeneratorHelper.getJavaDocHeader("Accessor for Cassandra entity - {@link " +
                ClassName.get(MetaData.instance.getTableNamespace(), rawName) + "}", MetaData.instance.getUpdateTime()));

        JavaFile javaFile = JavaFile.builder(namespaceToUse, accessorBuilder.build()).build();

        Disk.outputFile(javaFile);
    }
}
 
开发者ID:jtruelove,项目名称:exovert,代码行数:44,代码来源:AccessorGenerator.java

示例2: postProcessBeanFactory

import com.datastax.driver.mapping.annotations.Accessor; //导入依赖的package包/类
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory context) throws BeansException {
	ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false) {

		@Override
		protected boolean isCandidateComponent(AnnotatedBeanDefinition beanDefinition) {
			return beanDefinition.getMetadata().isInterface();
		}

	};
	scanner.addIncludeFilter(new AnnotationTypeFilter(Accessor.class));
	for (BeanDefinition bd : scanner.findCandidateComponents(basePackage)) {
		Class<?> accessorCls;
		try {
			accessorCls = Class.forName(bd.getBeanClassName());
		} catch (ClassNotFoundException e) {
			throw new AssertionError(e);
		}
		log.info("Creating proxy accessor: " + accessorCls.getName());
		MethodInterceptor interceptor = new MethodInterceptor() {

			private final Lazy<?> target = new Lazy<>(() -> {
				log.info("Creating actual accessor: " + accessorCls.getName());
				Session session;
				if (AccessorScannerConfigurer.this.session == null)
					session = mainContext.getBean(Session.class);
				else
					session = AccessorScannerConfigurer.this.session;
				MappingManager mappingManager = new MappingManager(session);
				return mappingManager.createAccessor(accessorCls);
			});

			@Override
			public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
				if ("toString".equals(method.getName())) {
					return accessorCls.getName();
				}
				return method.invoke(target.get(), args);
			}

		};
		Enhancer enhancer = new Enhancer();
		enhancer.setInterfaces(new Class<?>[] { accessorCls });
		enhancer.setCallback(interceptor);
		Object bean = enhancer.create();
		String beanName = StringUtils.uncapitalize(accessorCls.getSimpleName());
		context.registerSingleton(beanName, bean);
		log.info("Bean registed, name=" + beanName + ", bean=" + bean.toString());
	}
}
 
开发者ID:NewTranx,项目名称:newtranx-utils,代码行数:51,代码来源:AccessorScannerConfigurer.java


注:本文中的com.datastax.driver.mapping.annotations.Accessor类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。