• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java PackageOutline类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: run

import com.sun.tools.xjc.outline.PackageOutline; //导入依赖的package包/类
@Override
public boolean run(Outline outline, Options opt, ErrorHandler errorHandler) {

	for (final PackageOutline packageOutline : outline
			.getAllPackageContexts()) {
		final StringBuilder sb = new StringBuilder();
		for (final ClassOutline classOutline : packageOutline.getClasses()) {
			sb.append(CodeModelUtils.getLocalClassName(classOutline.ref));
			sb.append("\n");
		}

		final JTextFile indexFile = new JTextFile("jaxb.index");
		indexFile.setContents(sb.toString());
		packageOutline._package().addResourceFile(indexFile);
	}
	return true;
}
 
开发者ID:highsource,项目名称:jaxb2-basics,代码行数:18,代码来源:JaxbIndexPlugin.java


示例2: getPersistenceUnitName

import com.sun.tools.xjc.outline.PackageOutline; //导入依赖的package包/类
public String getPersistenceUnitName(Mapping context, Outline outline) {
	final StringBuffer sb = new StringBuffer();
	boolean first = true;

	for (final Iterator<? extends PackageOutline> packageOutlines = outline
			.getAllPackageContexts().iterator(); packageOutlines.hasNext();) {
		final PackageOutline packageOutline = packageOutlines.next();
		if (!getIgnoring().isPackageOutlineIgnored(context, outline,
				packageOutline)) {
			if (!first) {
				sb.append(':');
			} else {
				first = false;
			}
			final String packageName = packageOutline._package().name();
			sb.append(packageName);
		}

	}
	return sb.toString();
}
 
开发者ID:highsource,项目名称:hyperjaxb3,代码行数:22,代码来源:DefaultNaming.java


示例3: run

import com.sun.tools.xjc.outline.PackageOutline; //导入依赖的package包/类
@Override
public boolean run(final Outline outline, final Options options, final ErrorHandler errorHandler) {
	final JClass xmlNsClass = outline.getCodeModel().ref(XmlNs.class);
	final JClass xmlSchemaClass = outline.getCodeModel().ref(XmlSchema.class);

	for (PackageOutline packageOutline : outline.getAllPackageContexts()) {
		final JPackage p = packageOutline._package();

		// get the target namespaces of all schemas that bind to the current package
		final Set<String> packageNamespaces = getPackageNamespace(packageOutline);

		// is there any prefix binding defined for the current package ?
		final Model packageModel = getPackageModel((PackageOutlineImpl) packageOutline);
		final List<Pair> list = getPrefixBinding(packageModel, packageNamespaces);
		acknowledgePrefixAnnotations(packageModel);

		if (list == null || list.isEmpty()) {
			// no prefix binding, nothing to do
			continue;
		}

		// add XML namespace prefix annotations
		final JAnnotationUse xmlSchemaAnnotation = getOrAddXmlSchemaAnnotation(p, xmlSchemaClass);
		if (xmlSchemaAnnotation == null) {
			throw new RuntimeException("Unable to get/add 'XmlSchema' annotation to package [" + p.name() + "]");
		}

		final JAnnotationArrayMember members = xmlSchemaAnnotation.paramArray("xmlns");
		for (Pair pair : list) {
			addNamespacePrefix(xmlNsClass, members, pair.getNamespace(), pair.getPrefix());
		}
	}

	return true;
}
 
开发者ID:Siggen,项目名称:jaxb2-namespace-prefix,代码行数:36,代码来源:NamespacePrefixPlugin.java


示例4: getPackageNamespace

import com.sun.tools.xjc.outline.PackageOutline; //导入依赖的package包/类
private static Set<String> getPackageNamespace(PackageOutline packageOutline) {
	final Map<String, Integer> uriCountMap = getUriCountMap(packageOutline);
	final Set<String> result = new HashSet<String>();
	if (uriCountMap != null) {
		result.addAll(uriCountMap.keySet());
	}

	//
	// Find annotated methods in the ObjectFactory that create elements, and extract their namespace URIs.
	//
	final Collection<JMethod> methods = packageOutline.objectFactory().methods();
	if (methods != null) {
		for (JMethod method : methods) {
			final List<JAnnotationUse> annotations = getAnnotations(method);
			if (annotations != null) {
				for (JAnnotationUse annotation : annotations) {
					final Map<String, JAnnotationValue> map = getAnnotationMemberValues(annotation);
					if (map != null) {
						for (Map.Entry<String, JAnnotationValue> entry : map.entrySet()) {
							if (entry.getKey().equals("namespace")) {
								final String ns = getStringAnnotationValue(entry.getValue());
								result.add(ns);
							}
						}
					}
				}
			}
		}
	}
	return result;
}
 
开发者ID:Siggen,项目名称:jaxb2-namespace-prefix,代码行数:32,代码来源:NamespacePrefixPlugin.java


示例5: CMPackageOutline

import com.sun.tools.xjc.outline.PackageOutline; //导入依赖的package包/类
public CMPackageOutline(MModelOutline parent, MPackageInfo target,
		PackageOutline packageOutline) {
	Validate.notNull(parent);
	Validate.notNull(target);
	this.parent = parent;
	this.target = target;
	this.code = packageOutline._package();
	this.objectFactoryOutline = new CMObjectFactoryOutline(parent, this,
			packageOutline.objectFactory());
}
 
开发者ID:highsource,项目名称:jaxb2-basics,代码行数:11,代码来源:CMPackageOutline.java


示例6: generate

import com.sun.tools.xjc.outline.PackageOutline; //导入依赖的package包/类
public MPackageOutline generate(MModelOutline parent,
		MModelInfo<NType, NClass> modelInfo, MPackageInfo packageInfo) {
	final PackageOutline packageOutline = outline
			.getPackageContext(this.packageInfo);
	Validate.notNull(packageOutline);
	return new CMPackageOutline(parent, packageInfo, packageOutline);
}
 
开发者ID:highsource,项目名称:jaxb2-basics,代码行数:8,代码来源:CMPackageOutlineGenerator.java


示例7: getContextPath

import com.sun.tools.xjc.outline.PackageOutline; //导入依赖的package包/类
public static String getContextPath(Outline context) {
	final StringBuilder sb = new StringBuilder();

	for (final Iterator<? extends PackageOutline> packageOutlines = context
			.getAllPackageContexts().iterator(); packageOutlines.hasNext();) {
		final PackageOutline packageOutline = packageOutlines.next();
		final String packageName = packageOutline._package().name();
		sb.append(packageName);
		if (packageOutlines.hasNext())
			sb.append(':');
	}
	return sb.toString();
}
 
开发者ID:highsource,项目名称:jaxb2-basics,代码行数:14,代码来源:OutlineUtils.java


示例8: processPackageOutlines

import com.sun.tools.xjc.outline.PackageOutline; //导入依赖的package包/类
private void processPackageOutlines(Outline outline,
		Map<String, JClass> knownClasses) {
	List<CPluginCustomization> customizations = CustomizationUtils
			.findCustomizations(outline,
					Customizations.OBJECT_FACTORY_ELEMENT_NAME);

	for (CPluginCustomization customization : customizations) {
		final ObjectFactoryCustomization objectFactoryCustomization = (ObjectFactoryCustomization) CustomizationUtils
				.unmarshall(Customizations.getContext(), customization);

		final String packageName = objectFactoryCustomization
				.getPackageName();

		if (packageName != null) {
			for (PackageOutline packageOutline : outline
					.getAllPackageContexts()) {
				final JDefinedClass theClass = packageOutline
						.objectFactory();
				if (packageName.equals(packageOutline._package().name())) {
					ExtendsClass extendsClass = objectFactoryCustomization
							.getExtendsClass();
					if (extendsClass != null) {
						generateExtends(theClass, extendsClass,
								knownClasses);
					}
					List<ImplementsInterface> implementsInterfaces = objectFactoryCustomization
							.getImplementsInterface();
					if (implementsInterfaces != null) {
						for (ImplementsInterface implementsInterface : implementsInterfaces) {
							if (implementsInterface != null) {
								generateImplements(theClass,
										implementsInterface, knownClasses);
							}
						}
					}
				}
			}
		}
	}
}
 
开发者ID:highsource,项目名称:jaxb2-basics,代码行数:41,代码来源:InheritancePlugin.java


示例9: isPackageOutlineIgnored

import com.sun.tools.xjc.outline.PackageOutline; //导入依赖的package包/类
public boolean isPackageOutlineIgnored(Mapping context, Outline outline,
		PackageOutline packageOutline) {
	for (IgnoredPackage ignoredPackage : getCustomizing()
			.<IgnoredPackage> findCustomizations(outline.getModel(),
					Customizations.IGNORED_PACKAGE_ELEMENT_NAME)) {
		if (packageOutline._package().name()
				.equals(ignoredPackage.getName())) {
			return true;
		}
	}
	return false;
}
 
开发者ID:highsource,项目名称:hyperjaxb3,代码行数:13,代码来源:DefaultIgnoring.java


示例10: findPackageForNamespace

import com.sun.tools.xjc.outline.PackageOutline; //导入依赖的package包/类
private PackageOutline findPackageForNamespace(final String namespaceUri) {
	for (final PackageOutline packageOutline : this.pluginContext.outline.getAllPackageContexts()) {
		if (namespaceUri.equals(packageOutline.getMostUsedNamespaceURI())) {
			return packageOutline;
		}
	}
	return null;
}
 
开发者ID:mklemm,项目名称:jaxb2-rich-contract-plugin,代码行数:9,代码来源:GroupInterfaceGenerator.java


示例11: process

import com.sun.tools.xjc.outline.PackageOutline; //导入依赖的package包/类
public T process(C context, PackageOutline packageOutline, Options options)
throws Exception;
 
开发者ID:highsource,项目名称:jaxb2-basics,代码行数:3,代码来源:PackageOutlineProcessor.java


示例12: execute

import com.sun.tools.xjc.outline.PackageOutline; //导入依赖的package包/类
protected void execute(final Options options, final JCodeModel codeModel,
		final CodeWriter codeWriter, final ErrorReceiver errorReceiver)
		throws IOException {
	logger.debug("Loading the model.");
	final Model model = ModelLoader.load(options, codeModel, errorReceiver);
	logger.debug("Generating the code.");
	final Outline outline = model.generateCode(options, errorReceiver);
	logger.debug("Writing the code.");
	model.codeModel.build(codeWriter);
	this.outline = outline;
	final StringBuffer contextPathStringBuffer = new StringBuffer();
	String delimiter = "";
	for (final PackageOutline packageOutline : this.outline
			.getAllPackageContexts()) {
		contextPathStringBuffer.append(delimiter);
		contextPathStringBuffer.append(packageOutline._package().name());
		delimiter = ":";
	}
	this.contextPath = contextPathStringBuffer.toString();
	logger.debug("Compiling the code.");
	final JavaCompiler systemJavaCompiler = ToolProvider
			.getSystemJavaCompiler();
	final DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
	final StandardJavaFileManager standardFileManager = systemJavaCompiler
			.getStandardFileManager(diagnostics, null, null);

	final Collection<File> javaFiles = FileUtils.listFiles(targetDirectory,
			FileFilterUtils.suffixFileFilter(".java"),
			TrueFileFilter.INSTANCE);

	final Iterable<? extends JavaFileObject> fileObjects = standardFileManager
			.getJavaFileObjectsFromFiles(javaFiles);

	ClassLoader contextClassLoader = Thread.currentThread()
			.getContextClassLoader();

	final List<String> compilerOptions = new LinkedList<String>();

	if (contextClassLoader instanceof URLClassLoader) {
		final URLClassLoader urlClassLoader = (URLClassLoader) contextClassLoader;
		final URL[] urls = urlClassLoader.getURLs();
		if (urls.length > 0) {
			compilerOptions.add("-classpath");

			final StringBuffer classpathStringBuffer = new StringBuffer();
			String separator = "";
			for (final URL url : urls) {
				logger.debug("URL:" + url);
				classpathStringBuffer.append(separator);
				try {
					classpathStringBuffer.
					// append("\"").
							append(new File(url.toURI()).getAbsolutePath())
					// .append("\"")
					;
					separator = SystemUtils.PATH_SEPARATOR;
				} catch (URISyntaxException ignored) {
				}
			}
			compilerOptions.add(classpathStringBuffer.toString());
		}
	}
	compilerOptions.add("-verbose");
	compilerOptions.add("-d");
	compilerOptions.add(targetDirectory.getAbsolutePath());

	logger.debug("Compiler options:"
			+ StringUtils.join(compilerOptions.iterator(), " "));
	// // conte
	//
	// final String[] compilerOptions = new String[] { "-d",
	// targetDirectory.getAbsolutePath(), "-verbose" };

	systemJavaCompiler.getTask(null, standardFileManager, null,
			compilerOptions, null, fileObjects).call();
	standardFileManager.close();
}
 
开发者ID:highsource,项目名称:hyperjaxb3,代码行数:78,代码来源:DynamicCompiler.java


示例13: isPackageOutlineIgnored

import com.sun.tools.xjc.outline.PackageOutline; //导入依赖的package包/类
public boolean isPackageOutlineIgnored(Mapping context, Outline outline,
PackageOutline packageOutline);
 
开发者ID:highsource,项目名称:hyperjaxb3,代码行数:3,代码来源:Ignoring.java


示例14: createInterfaceDeclaration

import com.sun.tools.xjc.outline.PackageOutline; //导入依赖的package包/类
private DefinedInterfaceOutline createInterfaceDeclaration(final XSDeclaration groupDecl) throws SAXException {
	final PackageOutline packageOutline = findPackageForNamespace(groupDecl.getTargetNamespace());
	if (packageOutline == null) {
		this.pluginContext.errorHandler.error(new SAXParseException(MessageFormat.format(GroupInterfaceGenerator.RESOURCE_BUNDLE.getString("error.package-not-found"), groupDecl.getTargetNamespace()), groupDecl.getLocator()));
		return null;
	}

	final JPackage container = packageOutline._package();
	final ClassOutline dummyImplementation = this.pluginContext.classesBySchemaComponent.get(PluginContext.getQName(groupDecl));
	if (dummyImplementation == null) {
		this.pluginContext.errorHandler.error(new SAXParseException(MessageFormat.format(GroupInterfaceGenerator.RESOURCE_BUNDLE.getString("error.no-implementation"), this.pluginContext.outline.getModel().getNameConverter().toClassName(groupDecl.getName()), groupDecl.getTargetNamespace(), groupDecl.getName()), groupDecl.getLocator()));
		return null;
	}

	final String interfaceName = dummyImplementation.implClass.name();
	container.remove(dummyImplementation.implClass);
	final JDefinedClass groupInterface;
	final JDefinedClass supportInterface;
	try {
		groupInterface = container._interface(JMod.PUBLIC, interfaceName);
		supportInterface = this.settings.isGeneratingSupportInterface() ? container._interface(JMod.PUBLIC, interfaceName + this.settings.getSupportInterfaceNameSuffix())._implements(groupInterface) : null;
	} catch (final JClassAlreadyExistsException e) {
		this.pluginContext.errorHandler.error(new SAXParseException(MessageFormat.format(GroupInterfaceGenerator.RESOURCE_BUNDLE.getString("error.interface-exists"), interfaceName, ""), groupDecl.getLocator()));
		return null;
	}
	final DefinedInterfaceOutline interfaceDecl = new DefinedInterfaceOutline(groupDecl, groupInterface, dummyImplementation, supportInterface);

	// Generate Javadoc with schema fragment
	final StringWriter out = new StringWriter();
	out.write("<pre>\n");
	final SchemaWriter sw = new SchemaWriter(new JavadocEscapeWriter(out));
	groupDecl.visit(sw);
	out.write("</pre>");

	final JDocComment comment = groupInterface.javadoc();
	comment.append(GroupInterfaceGenerator.RESOURCE_BUNDLE.getString("comment.generated-from-xs-decl.header")).
			append("\n").
			append(MessageFormat.format(GroupInterfaceGenerator.RESOURCE_BUNDLE.getString("comment.generated-from-xs-decl.qname"),
					groupDecl.getTargetNamespace(),
					groupDecl.getName())).
			append("\n").
			append(MessageFormat.format(GroupInterfaceGenerator.RESOURCE_BUNDLE.getString("comment.generated-from-xs-decl.locator"),
					groupDecl.getLocator().getSystemId(),
					groupDecl.getLocator().getLineNumber(),
					groupDecl.getLocator().getColumnNumber()))
			.append("\n")
			.append(GroupInterfaceGenerator.RESOURCE_BUNDLE.getString("comment.generated-from-xs-decl.source"))
			.append("\n")
			.append(out.toString());


	for (final PropertyUse propertyUse : findChildDecls(groupDecl)) {
		final FieldOutline field = findField(dummyImplementation, propertyUse);
		if (field != null) {
			generateProperty(interfaceDecl, field);
		}
	}

	if(this.declareVisitMethod) {
		final JDefinedClass target = supportInterface != null ? supportInterface : groupInterface;
		target.method(JMod.NONE, target, this.pluginContext.findPlugin(MetaPlugin.class).getVisitMethodName()).param(JMod.FINAL, PropertyVisitor.class, "visitor_");
	}

	return interfaceDecl;
}
 
开发者ID:mklemm,项目名称:jaxb2-rich-contract-plugin,代码行数:66,代码来源:GroupInterfaceGenerator.java


示例15: identifyCandidates

import com.sun.tools.xjc.outline.PackageOutline; //导入依赖的package包/类
private Set<JDefinedClass> identifyCandidates(Outline outline) {

        // phase one: identify all of the candidates and update the ObjectFactories with the setter call
        // phase two: only include instances that don't have a JDefinedClass as their super
        // phase three: add all of the markings

        JClass qNameClass = outline.getCodeModel().ref(QName.class);
        Set<JDefinedClass> candidates = new LinkedHashSet<>();
        for(PackageOutline po : outline.getAllPackageContexts()) {
            // locate the object factory
            JDefinedClass of = outline.getPackageContext(po._package()).objectFactory();
            for(JMethod method : of.methods()) {
                JType retType = method.type();

                if (retType.binaryName().startsWith(JAXBElement.class.getName())) {
                    JClass clazz = (JClass) retType;
                    List<JClass> typeParameters = clazz.getTypeParameters();
                    if (typeParameters.size()==1) {
                        if (typeParameters.get(0) instanceof JDefinedClass && !typeParameters.get(0).isAbstract()) {
                            String namespace = null;
                            String localPart = null;
                            for(JAnnotationUse  au : method.annotations()) {
                                if (au.getAnnotationClass().fullName().equals(XmlElementDecl.class.getName())) {
                                    namespace = annotationValueToString(au.getAnnotationMembers().get("namespace"));
                                    localPart = annotationValueToString(au.getAnnotationMembers().get("name"));
                                    break;
                                }

                            }
                            if (namespace != null) {
                                method.body().pos(0);
                                method.body().invoke(method.params().get(0), SETTER)
                                        .arg(JExpr._new(qNameClass).arg(namespace).arg(localPart));
                            }
                            JDefinedClass dc = (JDefinedClass) typeParameters.get(0);
                            candidates.add(dc);
                        }
                    }
                }
            }
        }
        return candidates;
    }
 
开发者ID:massfords,项目名称:jaxb-visitor,代码行数:44,代码来源:CreateJAXBElementNameCallback.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java MultiValueHashMap类代码示例发布时间:2022-05-22
下一篇:
Java LinearSearch类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap