本文整理汇总了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;未经允许,请勿转载。 |
请发表评论