ConfigurationProperty prop = context.getPropertyOracle().getConfigurationProperty("gdx.reflect.include"); for (String s : prop.getValues()) { JClassType type = typeOracle.findType(s); if (type != null) gatherTypes(type.getErasedType(), types); gatherTypes(typeOracle.findType("java.util.List").getErasedType(), types); gatherTypes(typeOracle.findType("java.util.ArrayList").getErasedType(), types); gatherTypes(typeOracle.findType("java.util.HashMap").getErasedType(), types); gatherTypes(typeOracle.findType("java.util.Map").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.String").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Boolean").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Byte").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Long").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Character").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Short").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Integer").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Float").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.CharSequence").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Double").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Object").getErasedType(), types);
ConfigurationProperty prop = context.getPropertyOracle().getConfigurationProperty("gdx.reflect.include"); for (String s : prop.getValues()) { JClassType type = typeOracle.findType(s); if (type != null) gatherTypes(type.getErasedType(), types); gatherTypes(typeOracle.findType("java.util.List").getErasedType(), types); gatherTypes(typeOracle.findType("java.util.ArrayList").getErasedType(), types); gatherTypes(typeOracle.findType("java.util.HashMap").getErasedType(), types); gatherTypes(typeOracle.findType("java.util.Map").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.String").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Boolean").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Byte").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Long").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Character").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Short").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Integer").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Float").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.CharSequence").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Double").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Object").getErasedType(), types);
@Override public String generate (TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle oracle = context.getTypeOracle(); assert (oracle != null); JClassType type = oracle.findType(typeName); if (type == null) { logger.log(ERROR, "Couldn't find type '" + typeName + "'"); throw new UnableToCompleteException(); } if (type.isInterface() == null) { logger.log(ERROR, "Type '" + typeName + "' must be an interface"); throw new UnableToCompleteException(); } ReflectionCacheSourceCreator source = new ReflectionCacheSourceCreator(logger, context, type); return source.create(); } }
@Override public String generate (TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle oracle = context.getTypeOracle(); assert (oracle != null); JClassType type = oracle.findType(typeName); if (type == null) { logger.log(ERROR, "Couldn't find type '" + typeName + "'"); throw new UnableToCompleteException(); } if (type.isInterface() == null) { logger.log(ERROR, "Type '" + typeName + "' must be an interface"); throw new UnableToCompleteException(); } ReflectionCacheSourceCreator source = new ReflectionCacheSourceCreator(logger, context, type); return source.create(); } }
private boolean hasDateTimeFormatAndTimeZoneConstructor( TypeOracle typeOracle, JClassType type) { JType dateTimeFormatType = typeOracle.findType(DateTimeFormat.class.getName()); JType timeZoneType = typeOracle.findType(TimeZone.class.getName()); return TypeOracleUtils.hasCompatibleConstructor(type, dateTimeFormatType, timeZoneType); }
private boolean hasImageResourceConstructor(TypeOracle typeOracle, JClassType type) { JType imageResourceType = typeOracle.findType(ImageResource.class.getName()); return type.findConstructor(new JType[] {imageResourceType}) != null; } }
/** * Checks to see if the widget extends DialogBox or is DialogBox proper. */ protected boolean isCustomWidget(UiBinderWriter writer, JClassType type) { return !type.equals(writer.getOracle().findType( DialogBox.class.getCanonicalName())); }
private boolean hasNumberFormatConstructor(TypeOracle typeOracle, JClassType type) { JType numberFormatType = typeOracle.findType(NumberFormat.class.getName()); return type.findConstructor(new JType[] {numberFormatType}) != null; } }
private boolean hasDateTimeFormatConstructor(TypeOracle typeOracle, JClassType type) { JType dateTimeFormatType = typeOracle.findType(DateTimeFormat.class.getName()); return TypeOracleUtils.hasCompatibleConstructor(type, dateTimeFormatType); }
private boolean isString(UiBinderWriter writer, JType paramType) { JType stringType = writer.getOracle().findType(String.class.getName()); return stringType.equals(paramType); }
public SubstitutionReplacer(TreeLogger logger, ResourceContext context, Map<String, CssDef> substitutions) { this.context = context; this.dataResourceType = context.getGeneratorContext().getTypeOracle().findType( DataResource.class.getCanonicalName()); this.imageResourceType = context.getGeneratorContext().getTypeOracle().findType( ImageResource.class.getCanonicalName()); this.logger = logger; this.substitutions = substitutions; }
@VisibleForTesting ResourceUrlFunction(ResourceContext context, MethodByPathHelper methodByPathHelper) { this.context = context; this.methodByPathHelper = methodByPathHelper; this.dataResourceType = context.getGeneratorContext().getTypeOracle() .findType(DataResource.class.getCanonicalName()); this.imageResourceType = context.getGeneratorContext().getTypeOracle() .findType(ImageResource.class.getCanonicalName()); }
/** * Determines if the element implements Caption. * * @throws UnableToCompleteException */ protected boolean isCaption(UiBinderWriter writer, XMLElement element) throws UnableToCompleteException { JClassType type = writer.findFieldType(element); Set<? extends JClassType> classes = type.getFlattenedSupertypeHierarchy(); JClassType captionType = writer.getOracle().findType( Caption.class.getCanonicalName()); return classes.contains(captionType); }
private SortedSet<JClassType> computeOperableTypes(ResourceContext context) { TypeOracle typeOracle = context.getGeneratorContext().getTypeOracle(); JClassType baseInterface = typeOracle.findType(CssResource.class.getCanonicalName()); SortedSet<JClassType> toReturn = new TreeSet<>(new JClassOrderComparator()); JClassType[] cssResourceSubtypes = baseInterface.getSubtypes(); for (JClassType type : cssResourceSubtypes) { if (type.isInterface() != null) { toReturn.add(type); } } return toReturn; }
private String consumeCurrency(XMLElement elem, UiBinderWriter writer) throws UnableToCompleteException { String currencyData = elem.consumeAttribute("currencyData", writer.getOracle().findType(CurrencyData.class.getCanonicalName())); String currencyCode = elem.consumeStringAttribute("currencyCode"); if (currencyData != null && currencyCode != null) { writer.die(elem, AT_MOST_ONE_SPECIFIED_CURRENCY); } return currencyData != null ? currencyData : currencyCode; }
@VisibleForTesting ImageSpriteCreator(MutatingVisitController visitController, ResourceContext context, ErrorManager errorManager, MethodByPathHelper methodByPathHelper) { this.visitController = visitController; this.errorManager = errorManager; this.context = context; this.methodByPathHelper = methodByPathHelper; this.imageResourceType = context.getGeneratorContext().getTypeOracle().findType( ImageResource.class.getName()); this.resourceThisPrefix = context.getImplementationSimpleSourceName() + ".this"; }
@Override public String createAssignment(TreeLogger logger, ResourceContext context, JMethod method) throws UnableToCompleteException { JClassType gwtType = context.getGeneratorContext().getTypeOracle().findType( GWT.class.getName()); assert gwtType != null; return gwtType.getQualifiedSourceName() + ".create(" + method.getReturnType().getQualifiedSourceName() + ".class)"; } }
private String consumeTimeZone(XMLElement elem, UiBinderWriter writer) throws UnableToCompleteException { String timeZone = elem.consumeAttribute("timezone", writer.getOracle().findType(TimeZone.class.getCanonicalName())); String timeZoneOffset = elem.consumeAttribute("timezoneOffset", getIntType(writer.getOracle())); if (timeZone != null && timeZoneOffset != null) { writer.die(elem, AT_MOST_ONE_SPECIFIED_TIME_ZONE); } if (timeZone != null) { return timeZone; } if (timeZoneOffset != null) { return TimeZone.class.getCanonicalName() + ".createTimeZone(" + timeZoneOffset + ")"; } return null; }
@Override public String interpretElement(XMLElement elem) throws UnableToCompleteException { if (!uiWriter.isWidgetElement(elem)) { return super.interpretElement(elem); } JClassType type = uiWriter.findFieldType(elem); TypeOracle oracle = uiWriter.getOracle(); MessagesWriter mw = uiWriter.getMessages(); String name = mw.consumeMessageAttribute("ph", elem); if ("".equals(name)) { name = "widget" + (++serial); } String idHolder = uiWriter.declareDomIdHolder(null); idToWidgetElement.put(idHolder, elem); if (oracle.findType(HasHTML.class.getName()).isAssignableFrom(type)) { return handleHasHTMLPlaceholder(elem, name, idHolder); } if (oracle.findType(HasText.class.getName()).isAssignableFrom(type)) { return handleHasTextPlaceholder(elem, name, idHolder); } return handleOpaqueWidgetPlaceholder(elem, name, idHolder); }
@Override public void render(TreeLogger logger, ResourceContext context, ClientBundleFields fields, RepeatStyle repeatStyle) throws UnableToCompleteException { JClassType stringType = context.getGeneratorContext().getTypeOracle().findType(String.class.getCanonicalName()); String contentsExpression = context.deploy( localized.getUrl(), null, image.isPreventInlining()); normalContentsFieldName = fields.define(stringType, "externalImage", contentsExpression, true, true); if (isRtl) { // Create a transformation to mirror about the Y-axis and translate AffineTransform tx = new AffineTransform(); tx.setTransform(-1, 0, 0, 1, rect.getWidth(), 0); rect.setTransform(tx); byte[] rtlData = ImageBundleBuilder.toPng(logger, rect); String rtlContentsUrlExpression = context.deploy(image.getName() + "_rtl.png", "image/png", rtlData, image.isPreventInlining()); rtlContentsFieldName = fields.define(stringType, "externalImage_rtl", rtlContentsUrlExpression, true, true); } }