use of com.google.gwt.core.ext.UnableToCompleteException in project gwt-test-utils by gwt-test-utils.
the class GeneratorCreateHandler method createModuleSpaceHost.
private ModuleSpaceHost createModuleSpaceHost(CompilationState compilationState, ModuleDef moduleDef) {
try {
ModuleSpaceHost moduleSpaceHost = new GwtTestModuleSpaceHost(GwtTreeLogger.get(), compilationState, moduleDef, null, ARTIFACT_ACCEPTOR, REBIND_CACHE);
ModuleSpace moduleSpace = createModuleSpace(moduleSpaceHost);
moduleSpaceHost.onModuleReady(moduleSpace);
return moduleSpaceHost;
} catch (UnableToCompleteException e) {
throw new GwtTestConfigurationException("Error while creating global ModuleSpaceHost :", e);
}
}
use of com.google.gwt.core.ext.UnableToCompleteException in project gerrit by GerritCodeReview.
the class CssLinker method name.
private String name(final TreeLogger logger, final PublicResource r) throws UnableToCompleteException {
byte[] out;
try (ByteArrayOutputStream tmp = new ByteArrayOutputStream();
InputStream in = r.getContents(logger)) {
final byte[] buf = new byte[2048];
int n;
while ((n = in.read(buf)) >= 0) {
tmp.write(buf, 0, n);
}
out = tmp.toByteArray();
} catch (IOException e) {
final UnableToCompleteException ute = new UnableToCompleteException();
ute.initCause(e);
throw ute;
}
String base = r.getPartialPath();
final int s = base.lastIndexOf('/');
if (0 < s) {
base = base.substring(0, s + 1);
} else {
base = "";
}
return base + Util.computeStrongName(out) + ".cache.css";
}
use of com.google.gwt.core.ext.UnableToCompleteException in project gerrit by GerritCodeReview.
the class PluginGenerator method generate.
@Override
public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException {
// The TypeOracle knows about all types in the type system
TypeOracle typeOracle = context.getTypeOracle();
// Get a reference to the type that the generator should implement
JClassType sourceType = typeOracle.findType(typeName);
// Ensure that the requested type exists
if (sourceType == null) {
logger.log(TreeLogger.ERROR, "Could not find requested typeName", null);
throw new UnableToCompleteException();
}
// Make sure the Gadget type is correctly defined
validateType(logger, sourceType);
// Pick a name for the generated class to not conflict.
String generatedSimpleSourceName = sourceType.getSimpleSourceName() + "PluginImpl";
// Begin writing the generated source.
ClassSourceFileComposerFactory f = new ClassSourceFileComposerFactory(sourceType.getPackage().getName(), generatedSimpleSourceName);
f.addImport(GWT.class.getName());
f.setSuperclass(typeName);
// All source gets written through this Writer
PrintWriter out = context.tryCreate(logger, sourceType.getPackage().getName(), generatedSimpleSourceName);
// If an implementation already exists, we don't need to do any work
if (out != null) {
// We really use a SourceWriter since it's convenient
SourceWriter sw = f.createSourceWriter(context, out);
sw.commit(logger);
}
return f.getCreatedClassName();
}
use of com.google.gwt.core.ext.UnableToCompleteException in project GwtMobile by dennisjzh.
the class GenUtils method inspectType.
public void inspectType(String typeName, List<JMethod> getters, List<JMethod> hasManyRels, List<JMethod> hasOneRels) throws UnableToCompleteException {
JClassType classType = getClassType(typeName);
for (JMethod method : classType.getOverridableMethods()) {
if (!method.isAbstract()) {
continue;
}
String methodName = method.getName();
if (methodName.startsWith("get")) {
// getId() is reserved.
String propertyName = methodName.substring(3);
if (propertyName.equals("Id")) {
continue;
}
JType returnType = method.getReturnType();
String returnTypeName = returnType.getSimpleSourceName();
if (returnType.isPrimitive() != null && !returnTypeName.equals("long") || returnTypeName.equals("String") || returnTypeName.equals("Date") || isSubclassOf(returnType, "JSONValue")) {
getters.add(method);
continue;
}
if (returnTypeName.equals("long")) {
logger.log(TreeLogger.ERROR, "GWT JSNI does not support 'long' as return type on getter '" + methodName + "'. Use 'double' instead.");
throw new UnableToCompleteException();
}
if (returnTypeName.startsWith("Collection")) {
hasManyRels.add(method);
continue;
}
if (isSubclassOf(returnType, "Persistable")) {
hasOneRels.add(method);
continue;
}
logger.log(TreeLogger.ERROR, "Unsupported return type '" + returnTypeName + "' on getter '" + methodName + "'.");
throw new UnableToCompleteException();
} else {
// TODO: check if method is a setter. ignore if so, error if not.
}
}
}
use of com.google.gwt.core.ext.UnableToCompleteException in project gwtphonegap by dankurka.
the class PhoneGapLogValueGenerator method generate.
@Override
public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException {
PropertyOracle propertyOracle = context.getPropertyOracle();
ConfigurationProperty property = null;
int value = 100;
try {
property = propertyOracle.getConfigurationProperty("phonegap.logging.maxentries");
List<String> values = property.getValues();
if (values.size() < 1) {
logger.log(TreeLogger.WARN, "can not resolve phonegap.logging.maxentries variable - defaulting to 100");
} else {
String stringValue = values.get(0);
try {
value = Integer.parseInt(stringValue);
} catch (Exception e) {
logger.log(TreeLogger.WARN, "can not prase phonegap.logging.maxentries variable - value: '" + stringValue + "' - defaulting to 100");
}
}
} catch (BadPropertyValueException e) {
logger.log(TreeLogger.WARN, "can not resolve phonegap.logging.maxentries variable - defaulting to 100", e);
}
JClassType classType = null;
try {
classType = context.getTypeOracle().getType(typeName);
} catch (NotFoundException e) {
logger.log(TreeLogger.ERROR, "can not find type: '" + typeName + "'", e);
throw new UnableToCompleteException();
}
String packageName = classType.getPackage().getName();
String simpleName = classType.getSimpleSourceName() + "_" + value;
String fullName = packageName + "." + simpleName;
ClassSourceFileComposerFactory composer = new ClassSourceFileComposerFactory(packageName, simpleName);
composer.addImplementedInterface(typeName);
composer.addImport(typeName);
PrintWriter printWriter = context.tryCreate(logger, packageName, simpleName);
if (printWriter == null) {
return fullName;
}
SourceWriter writer = composer.createSourceWriter(context, printWriter);
writer.println("public int getMaxEntries() {");
writer.println("return " + value + ";");
writer.println("}");
writer.commit(logger);
return fullName;
}
Aggregations