public String getHash(final JvmDeclaredType type) { if(type.eResource() instanceof TypeResource) { IMirror mirror = ((TypeResource)type.eResource()).getMirror(); if(mirror instanceof IMirrorExtension && ((IMirrorExtension) mirror).isSealed()) return type.getIdentifier(); } return cache.get(Tuples.create(HASH_CACHE_KEY, type), type.eResource(), new Provider<String>() { @Override public String get() { return signatureBuilderProvider.get().appendSignature(type).hash(); } }); }
/** * Replace the variables contained in the comment to be written to the <code>@Generated</code> annotation. */ protected String replaceVariables(String commentForGenerated, JvmDeclaredType jvmType) { String result = commentForGenerated; if (result.contains(GENERATED_COMMENT_VAR_SOURCE_FILE)) { Resource resource = jvmType.eResource(); if (resource != null) { URI uri = resource.getURI(); if (uri != null) { String sourceFile = uri.lastSegment(); if (sourceFile == null) sourceFile = uri.toString(); result = result.replace(GENERATED_COMMENT_VAR_SOURCE_FILE, sourceFile); } } } return result; }
protected boolean doCheckUniqueName(final QualifiedName name, final JvmDeclaredType type) { final IResourceDescriptions index = this.resourceDescriptionsProvider.getResourceDescriptions(type.eResource()); final Iterable<IEObjectDescription> others = index.getExportedObjects(TypesPackage.Literals.JVM_DECLARED_TYPE, name, false); return this.checkUniqueInIndex(type, others); }
/** * Returns the resolved features that are defined in the given <code>type</code> and its supertypes. * Considers private methods of super types, too. * @param type the type. Has to be contained in a resource. * @return the resolved features. */ public ResolvedFeatures getResolvedFeatures(JvmDeclaredType type) { ITypeReferenceOwner owner = new StandardTypeReferenceOwner(services, type.eResource().getResourceSet()); LightweightTypeReference contextType = owner.toLightweightTypeReference(type); return getResolvedFeatures(contextType); }
/** * Returns the resolved features targeting a specific Java version in order to support new language features. */ public ResolvedFeatures getResolvedFeatures(JvmDeclaredType type, JavaVersion targetVersion) { ITypeReferenceOwner owner = new StandardTypeReferenceOwner(services, type.eResource().getResourceSet()); LightweightTypeReference contextType = owner.toLightweightTypeReference(type); return getResolvedFeatures(contextType, targetVersion); }
public void generateFileHeader(final JvmDeclaredType it, final ITreeAppendable appendable, final GeneratorConfig config) { final FileHeaderAdapter fileHeaderAdapter = IterableExtensions.<FileHeaderAdapter>head(Iterables.<FileHeaderAdapter>filter(it.eAdapters(), FileHeaderAdapter.class)); if (((fileHeaderAdapter != null) && (!StringExtensions.isNullOrEmpty(fileHeaderAdapter.getHeaderText())))) { this.generateDocumentation(fileHeaderAdapter.getHeaderText(), this.fileHeaderProvider.getFileHeaderNodes(it.eResource()), appendable, config); } }
@Override protected void _internalDoGenerate(JvmDeclaredType type, IFileSystemAccess fsa) { if (DisableCodeGenerationAdapter.isDisabled(type)) { return; } final String qn = type.getQualifiedName(); if (!Strings.isEmpty(qn)) { final String fn = qn.replace('.', '/') + ".java"; //$NON-NLS-1$ final CharSequence content = generateType(type, this.generatorConfigProvider.get(type)); final String outputConfigurationName; final Boolean isTest = this.resourceTypeDetector.isTestResource(type.eResource()); if (isTest != null && isTest.booleanValue()) { outputConfigurationName = SARLConfig.TEST_OUTPUT_CONFIGURATION; } else { outputConfigurationName = IFileSystemAccess.DEFAULT_OUTPUT; } fsa.generateFile(fn, outputConfigurationName, content); } }
protected boolean checkUniqueInIndex(final JvmDeclaredType type, final Iterable<IEObjectDescription> descriptions) { final Function1<IEObjectDescription, URI> _function = (IEObjectDescription it) -> { return it.getEObjectURI().trimFragment(); }; final Set<URI> resourceURIs = IterableExtensions.<URI>toSet(IterableExtensions.<IEObjectDescription, URI>map(descriptions, _function)); int _size = resourceURIs.size(); boolean _greaterThan = (_size > 1); if (_greaterThan) { final Function1<URI, Boolean> _function_1 = (URI it) -> { URI _uRI = type.eResource().getURI(); return Boolean.valueOf((!Objects.equal(it, _uRI))); }; this.addIssue(type, IterableExtensions.<URI>head(IterableExtensions.<URI>filter(resourceURIs, _function_1)).lastSegment()); return false; } else { int _size_1 = IterableExtensions.size(descriptions); boolean _greaterThan_1 = (_size_1 > 1); if (_greaterThan_1) { this.addIssue(type); return false; } } return true; }
&& generatedJvmType instanceof JvmAnnotationType; if (generateSuppressWarnings || generateGenerated) { JvmAnnotationReferenceBuilder annotationRefBuilder = annotationRefBuilderFactory.create(jvmType.eResource().getResourceSet()); if (generateSuppressWarnings) { JvmAnnotationReference annotationRef = annotationRefBuilder.annotationRef(SuppressWarnings.class, "all");
protected boolean isUsedInLocalContextOnly(JvmDeclaredType type, Iterable<TypeUsage> usages, NonOverridableTypesProvider nonOverridableTypesProvider, String name) { for (TypeUsage usage : usages) { JvmIdentifiableElement visibleType = nonOverridableTypesProvider.getVisibleType(usage.getContext(), name); if (visibleType == null && ( !equal(usage.getContextPackageName(), type.getPackageName()) || (type.getDeclaringType() != null && usage.getContext().eResource() != type.getDeclaringType().eResource()) )) return false; } return true; } }