List of usage examples for com.google.gwt.user.rebind SourceWriter indent
void indent();
From source file:org.rstudio.core.rebind.StaticDataResourceGenerator.java
License:Open Source License
@Override public String createAssignment(TreeLogger logger, ResourceContext context, JMethod method) throws UnableToCompleteException { URL[] resources = ResourceGeneratorUtil.findResources(logger, context, method); if (resources.length != 1) { logger.log(TreeLogger.ERROR, "Exactly one resource must be specified", null); throw new UnableToCompleteException(); }// w w w.ja va2 s .c o m URL resource = resources[0]; String outputUrlExpression = context.deploy(resource, null, true); SourceWriter sw = new StringSourceWriter(); // Write the expression to create the subtype. sw.println("new " + StaticDataResource.class.getName() + "() {"); sw.indent(); // Convenience when examining the generated code. sw.println("// " + resource.toExternalForm()); sw.println("public String getUrl() {"); sw.indent(); sw.println("return " + outputUrlExpression + ";"); sw.outdent(); sw.println("}"); sw.println("public com.google.gwt.safehtml.shared.SafeUri getSafeUri() {"); sw.indent(); sw.println("return new org.rstudio.core.client.SafeUriStringImpl(" + outputUrlExpression + ");"); sw.outdent(); sw.println("}"); sw.println("public String getName() {"); sw.indent(); sw.println("return \"" + method.getName() + "\";"); sw.outdent(); sw.println("}"); sw.outdent(); sw.println("}"); return sw.toString(); }
From source file:org.senchalabs.gwt.gwtdriver.SeExporterGenerator.java
License:Apache License
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle oracle = context.getTypeOracle(); JClassType jso = oracle.findType(Name.getSourceNameForClass(JavaScriptObject.class)); JClassType toGenerate = oracle.findType(typeName).isClass(); String packageName = toGenerate.getPackage().getName(); String simpleSourceName = toGenerate.getName().replace('.', '_') + "Impl"; PrintWriter pw = context.tryCreate(logger, packageName, simpleSourceName); if (pw == null) { return packageName + "." + simpleSourceName; }//w w w. ja v a2 s . c om ClassSourceFileComposerFactory factory = new ClassSourceFileComposerFactory(packageName, simpleSourceName); factory.setSuperclass(typeName); SourceWriter sw = factory.createSourceWriter(context, pw); List<String> exportedTypes; try { exportedTypes = context.getPropertyOracle().getConfigurationProperty(SELENIUM_METHODS).getValues(); } catch (BadPropertyValueException e) { logger.log(TreeLogger.Type.ERROR, "Can't find any config property for " + SELENIUM_METHODS + " declared", e); throw new UnableToCompleteException(); } sw.println("protected void exportRegisteredTypes() {"); sw.indent(); //for each type set up in a config property, for (String exportedType : exportedTypes) { JClassType toExport = oracle.findType(exportedType); if (toExport == null) { logger.log(TreeLogger.Type.ERROR, "Cannot find " + exportedType + " be sure it is a valid GWT type"); throw new UnableToCompleteException(); } MethodsFor refersToType = toExport.getAnnotation(MethodsFor.class); if (refersToType == null) { logger.log(Type.ERROR, "Type " + exportedType + " is declared as having webdriver methods, but has no @MethodsFor annotation"); throw new UnableToCompleteException(); } //verify a default ctor - if not, methods must be static boolean requireStatic = toExport.getConstructors().length != 0 && toExport.findConstructor(new JType[] {}) == null; if (requireStatic) { logger.log(Type.INFO, "No default constructor found, all marked methods must be static"); } TreeLogger typeLogger = logger.branch(TreeLogger.Type.DEBUG, "Exporting methods in " + exportedType); //iterate through the methods for (JMethod m : toExport.getInheritableMethods()) { Method refersToMethod = m.getAnnotation(Method.class); if (refersToMethod == null) { continue; } TreeLogger methodLogger = typeLogger.branch(Type.DEBUG, "Examining " + m.getName()); if (requireStatic && !m.isStatic()) { typeLogger.log(Type.ERROR, "No default constructor found for " + exportedType + ", can't export instance method" + m.getName()); typeLogger.log(Type.ERROR, "Either mark the method as static, or ensure there is a default constructor."); throw new UnableToCompleteException(); } //verify that the method matches exactly one method in the webdriver side //TODO make this a little faster String matchingMethod = null; for (java.lang.reflect.Method exportableMethod : refersToType.value().getMethods()) { if (refersToMethod.value().equals(exportableMethod.getName())) { if (matchingMethod != null) { methodLogger.log(Type.ERROR, "Multiple methods found that match " + refersToMethod.value()); throw new UnableToCompleteException(); } matchingMethod = refersToMethod.value(); } } if (matchingMethod == null) { methodLogger.log(Type.ERROR, "Can't find a method that matches " + refersToMethod.value()); throw new UnableToCompleteException(); } //emit a registerFunction call wrapping it sw.println("registerFunction(\"%1$s\", \"%2$s\", new %3$s() {", escape(refersToType.value().getName()), escape(matchingMethod), Name.getSourceNameForClass(Function.class)); sw.indent(); sw.println("public Object apply(%1$s<?> args) {", Name.getSourceNameForClass(JsArray.class)); sw.indent(); JType retType = m.getReturnType(); if (retType.isPrimitive() != null) { switch (retType.isPrimitive()) { case VOID: //do nothing break; case INT: case DOUBLE: case BOOLEAN: sw.print("return \"\" + "); break; default: methodLogger.log(Type.ERROR, "Can't return primitive " + retType + " from exported method"); throw new UnableToCompleteException(); } } else if (retType.isClass() != null && retType.getQualifiedSourceName().equals("java.lang.String") || ((retType.isClass() != null) && retType.isClass().isAssignableTo(jso)) || ((retType.isInterface() != null) && oracle.getSingleJsoImplInterfaces().contains(retType))) { sw.print("return "); } else { methodLogger.log(Type.ERROR, "Can't return non-jso, non-supported primitive " + retType + " from exported method"); throw new UnableToCompleteException(); } if (m.isStatic()) { sw.print(exportedType); } else { sw.print("%1$s.<%2$s>create(%2$s.class)", GWT.class.getName(), exportedType); } sw.print(".%1$s(", matchingMethod); //iterate through the arguments //verify the arg type is legal JType[] erasedParameterTypes = m.getErasedParameterTypes(); for (int i = 0; i < erasedParameterTypes.length; i++) { JType type = erasedParameterTypes[i]; if (type.isPrimitive() != null || type.getQualifiedSourceName().equals("java.lang.String")) { //cast uglyness sw.print("args.<%2$s>cast().get(%1$d)", i, getJsArray(type)); } else if (type.isClass() != null && type.isClass().isAssignableTo(jso)) { //normal array plus cast() trickery sw.print("args.get(%1$d).<%2$s>cast()", i, type.getQualifiedSourceName()); } else if (type.isInterface() != null && oracle.getSingleJsoImplInterfaces().contains(type.isInterface())) { //single jso cast thing sw.print("args.get(%1$d).<%2$s>cast()", i, oracle.getSingleJsoImpl(type.isInterface()).getQualifiedSourceName()); } else {//TODO goktug's magic new jsinterface methodLogger.log(Type.ERROR, "Can't handle argument of type " + type); throw new UnableToCompleteException(); } if (i != erasedParameterTypes.length - 1) { sw.println(","); } } sw.println(");"); if (m.getReturnType() == JPrimitiveType.VOID) { sw.println("return null;"); } sw.outdent(); sw.println("}"); sw.outdent(); sw.println("});"); } } sw.outdent(); sw.println("}"); sw.commit(logger); return factory.getCreatedClassName(); }
From source file:org.switchyard.console.components.rebind.ComponentExtensionManagerGenerator.java
License:Apache License
private void generateClass(TreeLogger logger, GeneratorContext context, String packageName, String className, List<JClassType> componentExtensionClasses) { PrintWriter pw = context.tryCreate(logger, packageName, className); if (pw == null) { return;/*from ww w. j av a 2 s .c o m*/ } ClassSourceFileComposerFactory composerFactory = new ClassSourceFileComposerFactory(packageName, className); // imports composerFactory.addImport(HashMap.class.getCanonicalName()); composerFactory.addImport(Map.class.getCanonicalName()); composerFactory.addImport(ComponentProvider.class.getCanonicalName()); composerFactory.addImport(ComponentExtensionManager.class.getCanonicalName()); composerFactory.addImport(ComponentProviderProxyImpl.class.getCanonicalName()); composerFactory.addImport(GWT.class.getCanonicalName()); composerFactory.addImport(Inject.class.getCanonicalName()); // interface composerFactory.addImplementedInterface(ComponentExtensionManager.class.getCanonicalName()); SourceWriter sw = composerFactory.createSourceWriter(context, pw); // fields sw.println( "private Map<String, ComponentProviderProxy> _providers = new HashMap<String, ComponentProviderProxy>();"); sw.println("private Map<String, String> _typeToName = new HashMap<String, String>();"); // constructor sw.println("public " + className + "() {"); sw.indent(); for (JClassType extensionClass : componentExtensionClasses) { ComponentExtension extensionAnnotation = extensionClass.getAnnotation(ComponentExtension.class); sw.println("_providers.put(\"" + extensionAnnotation.componentName() + "\", new ComponentProviderProxyImpl(\"" + extensionAnnotation.displayName() + "\") {"); sw.indent(); sw.println("public ComponentProvider instantiate() {"); sw.indentln("return GWT.create(" + extensionClass.getQualifiedSourceName() + ".class);"); sw.println("}"); sw.outdent(); sw.println("});"); for (String type : extensionAnnotation.activationTypes()) { sw.println("_typeToName.put(\"" + type + "\", \"" + extensionAnnotation.componentName() + "\");"); } } sw.outdent(); sw.println("}"); // methods // getExtensionProviders sw.println("public Map<String, ComponentProviderProxy> getExtensionProviders() {"); sw.indentln("return _providers;"); sw.println("}"); // getExtensionProviderByComponentName sw.println("public ComponentProviderProxy getExtensionProviderByComponentName(String componentName) {"); sw.indent(); sw.println("if (_providers.containsKey(componentName)) {"); sw.indentln("return _providers.get(componentName);"); sw.println("}"); sw.println("return null;"); sw.outdent(); sw.println("}"); // getExtensionProviderByTypeName sw.println("public ComponentProviderProxy getExtensionProviderByTypeName(String typeName) {"); sw.indent(); sw.println("if (_typeToName.containsKey(typeName)) {"); sw.indentln("return getExtensionProviderByComponentName(_typeToName.get(typeName));"); sw.println("}"); sw.println("return null;"); sw.outdent(); sw.println("}"); // close it out sw.outdent(); sw.println("}"); context.commit(logger, pw); }
From source file:org.tiwonk.gwt.rest.generator.ClientResourceGenerator.java
License:Apache License
private void saveMethodReturnsLocation(GeneratorInfo info, SourceWriter writer, JMethod method) throws UnableToCompleteException { String callbackParam = info.asyncCallbackParam.getName(); String resourceParam = info.resourceParam.getName(); String methodName = info.httpMethod.toString(); // RequestBuilder request = new RequestBuilder(RequestBuilder.POST, getResourceURL()); writer.println();/*from w w w .j av a 2 s . c o m*/ writer.indent(); writer.println("RequestBuilder request = new RequestBuilder(RequestBuilder." + methodName + ", getResourceURL());"); // request.setHeader("Content-Type", "application/vnd.example.v1.person"); String consumes = info.consumes(method); if (consumes != null) { writer.print("request.setHeader(\"Content-Type\", \""); writer.print(consumes); writer.println("\");"); } String produces = info.produces(method); if (produces != null) { writer.print("request.setHeader(\"Accept\", \""); writer.print(produces); writer.println("\");"); } // JSONObject json = new JSONObject(person); // String payload = json.toString(); writer.println(); writer.print("JSONObject json = new JSONObject("); writer.print(resourceParam); writer.println(");"); writer.println("String payload = json.toString();"); // try { // request.sendRequest(payload, new RequestCallback() { writer.println(); writer.println("try {"); writer.indent(); writer.println("request.sendRequest(payload, new RequestCallback() {"); writer.indent(); // @Override // public void onResponseReceived(Request request, Response response) { // // if ( // response.getStatusCode() != Response.SC_CREATED && // response.getStatusCode() != Response.SC_OK // ) { // onError(request, new ResourceAccessException(response)); // return; // } // // String location = response.getHeader("Location"); // callback.onSuccess(location); // // } writer.println(); writer.println("@Override"); writer.println("public void onResponseReceived(Request request, Response response) {"); writer.indent(); writer.println("if ("); writer.println(" response.getStatusCode() != Response.SC_CREATED &&"); writer.println(" response.getStatusCode() != Response.SC_OK"); writer.println(") {"); writer.println(" onError(request, new ResourceAccessException(response));"); writer.println(" return;"); writer.println("}"); writer.println(); writer.println("String location = response.getHeader(\"Location\");"); writer.print(callbackParam); writer.println(".onSuccess(location);"); writer.outdent(); writer.println("}"); // @Override // public void onError(Request request, Throwable e) { // callback.onFailure(e); // } // }); writer.println(); writer.println("@Override"); writer.println("public void onError(Request request, Throwable e) {"); writer.print(" "); writer.print(callbackParam); writer.println(".onFailure(e);"); writer.println("}"); writer.outdent(); writer.println("});"); writer.outdent(); // } catch (RequestException e) { // callback.onFailure(e); // } writer.println(); writer.println("} catch (RequestException e) {"); writer.print(" "); writer.print(callbackParam); writer.println(".onFailure(e);"); writer.println("}"); writer.outdent(); }
From source file:org.tiwonk.gwt.rest.generator.ClientResourceGenerator.java
License:Apache License
private void saveMethodReturnsEntity(GeneratorInfo info, SourceWriter writer, JMethod method) throws UnableToCompleteException { String callbackParam = info.asyncCallbackParam.getName(); String resourceParam = info.resourceParam.getName(); String callbackType = info.asyncType.getSimpleSourceName(); String methodName = info.httpMethod.toString(); // RequestBuilder request = new RequestBuilder(RequestBuilder.POST, getResourceURL()); writer.println();//from ww w.j a v a2 s.c om writer.indent(); writer.println("RequestBuilder request = new RequestBuilder(RequestBuilder." + methodName + ", getResourceURL());"); // request.setHeader("Content-Type", "application/vnd.example.v1.person"); String consumes = info.consumes(method); if (consumes != null) { writer.print("request.setHeader(\"Content-Type\", \""); writer.print(consumes); writer.println("\");"); } String produces = info.produces(method); if (produces != null) { writer.print("request.setHeader(\"Accept\", \""); writer.print(produces); writer.println("\");"); } // JSONObject json = new JSONObject(person); // String payload = json.toString(); writer.println(); writer.print("JSONObject json = new JSONObject("); writer.print(resourceParam); writer.println(");"); writer.println("String payload = json.toString();"); // try { // request.sendRequest(payload, new RequestCallback() { writer.println(); writer.println("try {"); writer.indent(); writer.println("request.sendRequest(payload, new RequestCallback() {"); writer.indent(); // @Override // public void onResponseReceived(Request request, Response response) { // // if ( // response.getStatusCode() != Response.SC_CREATED && // response.getStatusCode() != Response.SC_OK // ) { // onError(request, new ResourceAccessException(response)); // return; // } // JSONValue value = JSONParser.parseStrict(response.getText()); // PersonRef entity = value.isObject().getJavaScriptObject().cast(); // callback.onSuccess(entity); // } writer.println(); writer.println("@Override"); writer.println("public void onResponseReceived(Request request, Response response) {"); writer.indent(); writer.println("if ("); writer.println(" response.getStatusCode() != Response.SC_CREATED &&"); writer.println(" response.getStatusCode() != Response.SC_OK"); writer.println(") {"); writer.println(" onError(request, new ResourceAccessException(response));"); writer.println(" return;"); writer.println("}"); writer.println(); writer.println("JSONValue value = JSONParser.parseStrict(response.getText());"); writer.print(callbackType); writer.println(" entity = value.isObject().getJavaScriptObject().cast();"); writer.print(callbackParam); writer.println(".onSuccess(entity);"); writer.outdent(); writer.println("}"); // @Override // public void onError(Request request, Throwable e) { // callback.onFailure(e); // } // }); writer.println(); writer.println("@Override"); writer.println("public void onError(Request request, Throwable e) {"); writer.print(" "); writer.print(callbackParam); writer.println(".onFailure(e);"); writer.println("}"); writer.outdent(); writer.println("});"); writer.outdent(); // } catch (RequestException e) { // callback.onFailure(e); // } writer.println(); writer.println("} catch (RequestException e) {"); writer.print(" "); writer.print(callbackParam); writer.println(".onFailure(e);"); writer.println("}"); writer.outdent(); }
From source file:org.tiwonk.gwt.rest.generator.ClientResourceGenerator.java
License:Apache License
private void saveMethodReturnsVoid(GeneratorInfo info, SourceWriter writer, JMethod method) throws UnableToCompleteException { String callbackParam = info.asyncCallbackParam.getName(); String resourceParam = info.resourceParam.getName(); String methodName = info.httpMethod.toString(); // RequestBuilder request = new RequestBuilder(RequestBuilder.POST, getResourceURL()); writer.println();//from w ww . j a va 2s.c om writer.indent(); writer.println("RequestBuilder request = new RequestBuilder(RequestBuilder." + methodName + ", getResourceURL());"); writer.indent(); // request.setHeader("Content-Type", "application/vnd.example.v1.person"); String consumes = info.consumes(method); if (consumes != null) { writer.print("request.setHeader(\"Content-Type\", \""); writer.print(consumes); writer.println("\");"); } String produces = info.produces(method); if (produces != null) { writer.print("request.setHeader(\"Accept\", \""); writer.print(produces); writer.println("\");"); } // JSONObject json = new JSONObject(person); // String payload = json.toString(); writer.println(); writer.print("JSONObject json = new JSONObject("); writer.print(resourceParam); writer.println(");"); writer.println("String payload = json.toString();"); // try { // request.sendRequest(payload, new RequestCallback() { writer.println(); writer.println("try {"); writer.indent(); writer.println("request.sendRequest(payload, new RequestCallback() {"); // @Override // public void onResponseReceived(Request request, Response response) { // // if ( // response.getStatusCode() != Response.SC_CREATED && // response.getStatusCode() != Response.SC_OK // ) { // onError(request, new ResourceAccessException(response)); // return; // } // callback.onSuccess(null); // } writer.println(); writer.println("@Override"); writer.println("public void onResponseReceived(Request request, Response response) {"); writer.indent(); writer.println("if ("); writer.println(" response.getStatusCode() != Response.SC_CREATED &&"); writer.println(" response.getStatusCode() != Response.SC_OK"); writer.println(") {"); writer.println(" onError(request, new ResourceAccessException(response));"); writer.println(" return;"); writer.println("}"); writer.println(); writer.print(callbackParam); writer.println(".onSuccess(null);"); writer.outdent(); writer.println("}"); // @Override // public void onError(Request request, Throwable e) { // callback.onFailure(e); // } // }); writer.println(); writer.println("@Override"); writer.println("public void onError(Request request, Throwable e) {"); writer.print(" "); writer.print(callbackParam); writer.println(".onFailure(e);"); writer.println("}"); writer.outdent(); writer.println("});"); writer.outdent(); // } catch (RequestException e) { // callback.onFailure(e); // } writer.println(); writer.println("} catch (RequestException e) {"); writer.print(" "); writer.print(callbackParam); writer.println(".onFailure(e);"); writer.println("}"); writer.outdent(); }
From source file:org.tiwonk.gwt.rest.generator.ClientResourceGenerator.java
License:Apache License
private void buildGetMethod(GeneratorInfo info, SourceWriter writer, JMethod method) { if (info.asyncType == null) { info.logger.log(TreeLogger.ERROR, "GET method must have a single parameter of type AsyncCallback<T> where T is the resource type."); return;//from www . j a v a 2 s .c o m } String callbackParam = info.asyncCallbackParam.getName(); String resourceSimpleName = info.asyncType.getSimpleSourceName(); String contentType = info.produces(method); writer.indent(); // RequestBuilder request = new RequestBuilder(RequestBuilder.GET, getResourceURL()); writer.println("RequestBuilder request = new RequestBuilder(RequestBuilder.GET, getResourceURL());"); // request.setHeader("Content-Type", "..."); if (contentType != null) { writer.print("request.setHeader(\"Accept\", \""); writer.print(contentType); writer.println("\");"); } /* request.setCallback(new RequestCallback() { @Override public void onResponseReceived(Request request, Response response) { if (response.getStatusCode() != Response.SC_OK) { onError(request, new ResourceAccessException(response)); return; } JSONValue value = JSONParser.parseStrict(response.getText()); Person entity = toPerson(value.isObject().getJavaScriptObject()); callback.onSuccess(entity); } */ writer.println("request.setCallback(new RequestCallback() {"); writer.indent(); writer.println(); writer.println("@Override"); writer.println("public void onResponseReceived(Request request, Response response) {"); writer.indent(); writer.println("if (response.getStatusCode() != Response.SC_OK) {"); writer.indent(); writer.println("onError(request, new ResourceAccessException(response));"); writer.println("return;"); writer.outdent(); writer.println("}"); writer.println("JSONValue value = JSONParser.parseStrict(response.getText());"); writer.print(resourceSimpleName); writer.print(" entity = "); writer.println("value.isObject().getJavaScriptObject().cast();"); writer.print(callbackParam); writer.println(".onSuccess(entity);"); writer.outdent(); writer.println("}"); /*/ @Override public void onError(Request request, Throwable exception) { callback.onFailure(exception); } }); */ writer.println(); writer.println("@Override"); writer.println("public void onError(Request request, Throwable exception) {"); writer.indent(); writer.print(callbackParam); writer.println(".onFailure(exception);"); writer.outdent(); writer.println("}"); writer.outdent(); writer.println("});"); /* try { request.send(); } catch (RequestException e) { callback.onFailure(e); } */ writer.println("try {"); writer.println(" request.send();"); writer.println("} catch (RequestException e) {"); writer.print(" "); writer.print(callbackParam); writer.println(".onFailure(e);"); writer.println("}"); writer.outdent(); }
From source file:org.vaadin.alump.offlinebuilder.OfflineConnectorReflectionGenerator.java
License:Open Source License
/** * Generated method that returns new instances matching with given class names * @param allInstantiableClasses/* w w w . ja v a 2 s. c om*/ * @param sourceWriter */ private void generateFactoryMethod(List<JClassType> allInstantiableClasses, SourceWriter sourceWriter) { sourceWriter.println("public Object instantiate(String className) {"); sourceWriter.indent(); sourceWriter.println("if (className == null) { return null; }"); for (JClassType classType : allInstantiableClasses) { if (classType.isAbstract()) { continue; } sourceWriter.println("else if (className.equals(\"" + classType.getQualifiedSourceName() + "\")) {"); sourceWriter.indent(); sourceWriter.println("return new " + classType.getQualifiedSourceName() + "( );"); sourceWriter.outdent(); sourceWriter.println("}"); } sourceWriter.println("return null;"); sourceWriter.outdent(); sourceWriter.println("}"); }
From source file:org.vectomatic.dev.svg.impl.gen.ExternalSVGResourceGenerator.java
License:Apache License
@Override public String createAssignment(TreeLogger logger, ResourceContext context, JMethod method) throws UnableToCompleteException { String name = method.getName(); SourceWriter sw = new StringSourceWriter(); sw.println("new " + ExternalSVGResourcePrototype.class.getName() + "("); sw.indent(); sw.println('"' + name + "\","); // These are field names sw.println(externalSVGUrlIdent + ", " + externalSVGCacheIdent + ", "); sw.println(offsets.get(method.getName()).toString()); sw.outdent();/*from w ww .j a v a 2s .co m*/ sw.print(")"); return sw.toString(); }
From source file:org.vectomatic.dev.svg.impl.gen.SVGResourceGenerator.java
License:Open Source License
@Override public String createAssignment(TreeLogger logger, ResourceContext context, JMethod method) throws UnableToCompleteException { // Extract the SVG name from the @Source annotation URL[] resources = ResourceGeneratorUtil.findResources(logger, context, method); if (resources.length != 1) { logger.log(TreeLogger.ERROR, "Exactly one resource must be specified", null); throw new UnableToCompleteException(); }//from w ww . j av a2 s.com URL resource = resources[0]; // The SVGResource is implemented as an anonymous inner class // xxx = new SVGResource() { // public OMSVGSVGElement getSvg() { // return OMSVGParser.parse("..."); // } // }; SourceWriter sw = new StringSourceWriter(); sw.println("new " + SVGResource.class.getName() + "() {"); sw.indent(); // Convenience when examining the generated code. sw.println("// " + resource.toExternalForm()); sw.println("public " + OMSVGSVGElement.class.getName() + " getSvg() {"); sw.indent(); String toWrite = Util.readURLAsString(resource); if (getValidated(method)) { SVGValidator.validate(toWrite, resource.toExternalForm(), logger, null); } sw.println("return " + OMSVGParser.class.getName() + ".parse(\"" + Generator.escape(toWrite) + "\");"); sw.outdent(); sw.println("}"); sw.println("public String getName() {"); sw.indent(); sw.println("return \"" + method.getName() + "\";"); sw.outdent(); sw.println("}"); sw.outdent(); sw.println("}"); return sw.toString(); }