c = t.isInterface();
c = t.isInterface();
@Override public String createAssignment(TreeLogger logger, ResourceContext context, JMethod method) throws UnableToCompleteException { // if Gss is enabled, defer the call to the Gss generator. if (gssEnabled) { return gssResourceGenerator.createAssignment(logger, context, method); } JClassType cssResourceSubtype = method.getReturnType().isInterface(); assert cssResourceSubtype != null; CssStylesheet stylesheet = stylesheetMap.get(method); // Optimize the stylesheet, recording the class selector obfuscations Map<JMethod, String> actualReplacements = optimize(logger, context, method); outputCssMapArtifact(logger, context, method, actualReplacements); outputAdditionalArtifacts(logger, context, method, actualReplacements, cssResourceSubtype, stylesheet); return getResourceImplAsString(logger, context, method, actualReplacements, cssResourceSubtype, stylesheet); }
private Map<String, Map<String, String>> computeReplacements(JMethod method, TreeLogger logger, ResourceContext context) throws UnableToCompleteException { Map<String, Map<String, String>> replacementsWithPrefix = new HashMap<String, Map<String, String>>(); replacementsWithPrefix .put("", computeReplacementsForType(method.getReturnType().isInterface())); // Process the Import annotation if any Import imp = method.getAnnotation(Import.class); if (imp != null) { boolean fail = false; TypeOracle typeOracle = context.getGeneratorContext().getTypeOracle(); for (Class<? extends CssResource> clazz : imp.value()) { JClassType importType = typeOracle.findType(clazz.getName().replace('$', '.')); assert importType != null : "TypeOracle does not have type " + clazz.getName(); // add this import type as a requirement for this generator context.getRequirements().addTypeHierarchy(importType); String prefix = getImportPrefix(importType); if (replacementsWithPrefix.put(prefix, computeReplacementsForType(importType)) != null) { logger.log(TreeLogger.ERROR, "Multiple imports that would use the prefix " + prefix); fail = true; } } if (fail) { throw new UnableToCompleteException(); } } return replacementsWithPrefix; }
private Map<JMethod, String> writeMethods(TreeLogger logger, ResourceContext context, JMethod method, SourceWriter sw, ConstantDefinitions constantDefinitions, Map<String, String> originalConstantNameMapping, Map<String, String> substitutionMap) throws UnableToCompleteException { JClassType gssResource = method.getReturnType().isInterface(); boolean success = true; Map<JMethod, String> methodToClassName = new LinkedHashMap<>(); for (JMethod toImplement : gssResource.getOverridableMethods()) { if (toImplement == getTextMethod) { writeGetText(logger, context, method, sw); } else if (toImplement == ensuredInjectedMethod) { writeEnsureInjected(sw); } else if (toImplement == getNameMethod) { writeGetName(method, sw); } else { success &= writeUserMethod(logger, toImplement, sw, constantDefinitions, originalConstantNameMapping, substitutionMap, methodToClassName); } } if (!success) { throw new UnableToCompleteException(); } return methodToClassName; }
@Override public void prepare(TreeLogger logger, ResourceContext context, ClientBundleRequirements requirements, JMethod method) throws UnableToCompleteException { if (method.getReturnType().isInterface() == null) { logger.log(TreeLogger.ERROR, "Return type must be an interface"); throw new UnableToCompleteException(); } URL[] resourceUrls = findResources(logger, context, method, gssOptions.isEnabled()); if (resourceUrls.length == 0) { logger.log(TreeLogger.ERROR, "At least one source must be specified"); throw new UnableToCompleteException(); } CssParsingResult cssParsingResult = parseResources(Lists.newArrayList(resourceUrls), context, logger); cssParsingResultMap.put(method, cssParsingResult); for (String permutationAxis : cssParsingResult.permutationAxes) { try { context.getRequirements().addPermutationAxis(permutationAxis); } catch (BadPropertyValueException e) { logger.log(TreeLogger.ERROR, "Unknown deferred-binding property " + permutationAxis, e); throw new UnableToCompleteException(); } } }
@Override public void prepare(TreeLogger logger, ResourceContext context, ClientBundleRequirements requirements, JMethod method) throws UnableToCompleteException { // if Gss is enabled, defer the call to the Gss generator. if (gssEnabled) { gssResourceGenerator.prepare(logger, context, requirements, method); return; } if (method.getReturnType().isInterface() == null) { logger.log(TreeLogger.ERROR, "Return type must be an interface"); throw new UnableToCompleteException(); } URL[] resources = getResources(logger, context, method); if (resources.length == 0) { logger.log(TreeLogger.ERROR, "At least one source must be specified"); throw new UnableToCompleteException(); } // At this point, gss is not enabled so we shouldn't try to compile a gss file. ensureNoGssFile(resources, logger); // Create the AST and do a quick scan for requirements CssStylesheet sheet = GenerateCssAst.exec(logger, resources); checkSheet(logger, sheet); stylesheetMap.put(method, sheet); (new RequirementsCollector(logger, context.getRequirements())).accept(sheet); }
/** * <p>isSerializable</p> * * @param type the type to test * @return true if the type is {@link Serializable}, false otherwise */ public static boolean isSerializable( JType type ) { return null != type.isInterface() && Serializable.class.getName().equals( type.getQualifiedSourceName() ); }
@Override public boolean isInterface() { return getEnclosedMetaObject().isInterface() != null; }
@Override public boolean isInterface() { return getEnclosedMetaObject().isInterface() != null; }
JClassType cssResourceSubtype = method.getReturnType().isInterface(); assert cssResourceSubtype != null; assert derivedFromCssResource(cssResourceSubtype,
boolean isJsType( JType type ) { JClassType cType = type.isClass(); if( cType == null ) cType = type.isInterface(); if( cType == null ) return false; Annotation[] annotations = cType.getDeclaredAnnotations(); for( Annotation annotation : annotations ) { if( "jsinterop.annotations.JsType".equals( annotation.annotationType().getName() ) ) return true; } return false; }
private String getEncoderDecoder(JType type, TreeLogger logger) throws UnableToCompleteException { String rc = builtInEncoderDecoders.get(type); if (rc == null) { JClassType ct = type.isClass() == null ? type.isInterface() : type.isClass(); GwtJacksonEncoderDecoderClassCreator generator = new GwtJacksonEncoderDecoderClassCreator(logger, context, ct); return generator.create() + ".INSTANCE"; } return rc; }
private String getEncoderDecoder(JType type, TreeLogger logger) throws UnableToCompleteException { String rc = builtInEncoderDecoders.get(type); if (rc == null) { JClassType ct = type.isClass() == null ? type.isInterface() : type.isClass(); GwtJacksonEncoderDecoderClassCreator generator = new GwtJacksonEncoderDecoderClassCreator(logger, context, ct); return generator.create() + ".INSTANCE"; } return rc; }
private String getEncoderDecoder(JType type, TreeLogger logger) throws UnableToCompleteException { String rc = builtInEncoderDecoders.get(type); if (rc == null) { JClassType ct = type.isClass() == null ? type.isInterface() : type.isClass(); if (ct != null && !isCollectionType(ct)) { JsonEncoderDecoderClassCreator generator = new JsonEncoderDecoderClassCreator(logger, context, ct); return generator.create() + ".INSTANCE"; } } return rc; }
private String getEncoderDecoder(JType type, TreeLogger logger) throws UnableToCompleteException { String rc = builtInEncoderDecoders.get(type); if (rc == null) { JClassType ct = type.isClass() == null ? type.isInterface() : type.isClass(); if (ct != null && !isCollectionType(ct)) { JsonEncoderDecoderClassCreator generator = new JsonEncoderDecoderClassCreator(logger, context, ct); return generator.create() + ".INSTANCE"; } } return rc; }
@Override public String createAssignment(TreeLogger logger, ResourceContext context, JMethod method) throws UnableToCompleteException { // if Gss is enabled, defer the call to the Gss generator. if (gssEnabled) { return gssResourceGenerator.createAssignment(logger, context, method); } JClassType cssResourceSubtype = method.getReturnType().isInterface(); assert cssResourceSubtype != null; CssStylesheet stylesheet = stylesheetMap.get(method); // Optimize the stylesheet, recording the class selector obfuscations Map<JMethod, String> actualReplacements = optimize(logger, context, method); outputCssMapArtifact(logger, context, method, actualReplacements); outputAdditionalArtifacts(logger, context, method, actualReplacements, cssResourceSubtype, stylesheet); return getResourceImplAsString(logger, context, method, actualReplacements, cssResourceSubtype, stylesheet); }
@Override public String createAssignment(TreeLogger logger, ResourceContext context, JMethod method) throws UnableToCompleteException { // if Gss is enabled, defer the call to the Gss generator. if (gssEnabled) { return gssResourceGenerator.createAssignment(logger, context, method); } JClassType cssResourceSubtype = method.getReturnType().isInterface(); assert cssResourceSubtype != null; CssStylesheet stylesheet = stylesheetMap.get(method); // Optimize the stylesheet, recording the class selector obfuscations Map<JMethod, String> actualReplacements = optimize(logger, context, method); outputCssMapArtifact(logger, context, method, actualReplacements); outputAdditionalArtifacts(logger, context, method, actualReplacements, cssResourceSubtype, stylesheet); return getResourceImplAsString(logger, context, method, actualReplacements, cssResourceSubtype, stylesheet); }
private boolean isValideType(JType type){ if(type == null) return false; if(type.isInterface() != null) return false; if(type.isPrimitive() != null) return true; JClassType aClass = type.isClass(); if(aClass != null && (aClass.isAssignableTo(serializableIntf) || aClass.isAssignableTo(isSerializableIntf))){ return true; } JArrayType array = type.isArray(); if(array == null) return false; return isValideType(array.getComponentType()); } }
public static void generateDataImpl( String className, JType type, SourceWriter sw, TreeLogger logger ) { sw.println( "protected " + className + "() {}" ); JClassType clazz = type.isInterface(); for( JMethod m : clazz.getMethods() ) { FieldName fnAnnotation = m.getAnnotation( FieldName.class ); assert (fnAnnotation != null) : "DataProxyFast factory needs FieldName annotation"; sw.println( "public final " + m.getReturnType().getParameterizedQualifiedSourceName() + " " + m.getName() + "()" ); sw.println( "{" ); sw.indent(); if( m.getReturnType().getSimpleSourceName().equals( "int" ) ) sw.println( "return getInt( \"" + fnAnnotation.fieldName() + "\" );" ); else if( m.getReturnType().getSimpleSourceName().equals( "String" ) ) sw.println( "return getString( \"" + fnAnnotation.fieldName() + "\" );" ); sw.outdent(); sw.println( "}" ); } }