[jboss-svn-commits] JBL Code SVN: r20965 - in labs/jbossrules/trunk/drools-guvnor/src/main/java: com/google/gwt/core and 6 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jul 8 15:11:35 EDT 2008
Author: arhan
Date: 2008-07-08 15:11:35 -0400 (Tue, 08 Jul 2008)
New Revision: 20965
Added:
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/Generator.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/GeneratorContext.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/PropertyOracle.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/TreeLogger.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/UnableToCompleteException.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/HasMetaData.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JClassType.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JConstructor.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JField.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JMethod.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JPackage.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JParameterizedType.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JPrimitiveType.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JType.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/TypeOracle.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/user/rebind/
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/user/rebind/ClassSourceFileComposerFactory.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/user/rebind/SourceWriter.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/rebind/
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/rebind/EditorLauncherGenerator.java
Log:
GSOC2008: EditorLauncher generating utility with some stubs in order to prevent additional dependencies
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/Generator.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/Generator.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/Generator.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,7 @@
+package com.google.gwt.core.ext;
+
+/**
+ *
+ */
+public class Generator {
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/GeneratorContext.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/GeneratorContext.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/GeneratorContext.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,22 @@
+package com.google.gwt.core.ext;
+
+import com.google.gwt.core.ext.typeinfo.TypeOracle;
+
+import java.io.PrintWriter;
+import java.io.OutputStream;
+
+public interface GeneratorContext {
+ void commit(TreeLogger logger, PrintWriter pw);
+
+ void commitResource(TreeLogger logger, OutputStream os)
+ throws UnableToCompleteException;
+
+ PropertyOracle getPropertyOracle();
+
+ TypeOracle getTypeOracle();
+
+ PrintWriter tryCreate(TreeLogger logger, String packageName, String simpleName);
+
+ OutputStream tryCreateResource(TreeLogger logger, String partialPath)
+ throws UnableToCompleteException;
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/PropertyOracle.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/PropertyOracle.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/PropertyOracle.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,8 @@
+package com.google.gwt.core.ext;
+
+/**
+ *
+ */
+public interface PropertyOracle {
+ String getPropertyValue(TreeLogger logger, String propertyName);
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/TreeLogger.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/TreeLogger.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/TreeLogger.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,12 @@
+package com.google.gwt.core.ext;
+
+public interface TreeLogger {
+ class Type {
+ }
+
+ public TreeLogger branch(Type type, String msg, Throwable caught);
+
+ public boolean isLoggable(Type type);
+
+ public void log(Type type, String msg, Throwable caught);
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/UnableToCompleteException.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/UnableToCompleteException.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/UnableToCompleteException.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,4 @@
+package com.google.gwt.core.ext;
+
+public class UnableToCompleteException extends Exception {
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/HasMetaData.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/HasMetaData.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/HasMetaData.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,12 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public interface HasMetaData {
+ void addMetaData(String tagName, String[] values);
+
+ String[][] getMetaData(String tagName);
+
+ String[] getMetaDataTags();
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JClassType.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JClassType.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JClassType.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,233 @@
+
+package com.google.gwt.core.ext.typeinfo;
+
+import com.google.gwt.core.ext.UnableToCompleteException;
+
+/**
+ * Type representing a Java class or interface type.
+ */
+public class JClassType extends JType implements HasMetaData {
+
+ public void addImplementedInterface(JClassType intf) {
+ }
+
+ public void addMetaData(String tagName, String[] values) {
+ }
+
+ public void addModifierBits(int bits) {
+ }
+
+ public JConstructor findConstructor(JType[] paramTypes) {
+ return null;
+ }
+
+ public JField findField(String name) {
+ return null;
+ }
+
+ public JMethod findMethod(String name, JType[] paramTypes) {
+ return null;
+ }
+
+ public JClassType findNestedType(String typeName) {
+ return null;
+ }
+
+ public int getBodyEnd() {
+ return 0;
+ }
+
+ public int getBodyStart() {
+ return 0;
+ }
+
+ public JClassType getEnclosingType() {
+ return null;
+ }
+
+ public JField getField(String name) {
+ return null;
+ }
+
+ public JField[] getFields() {
+ return null;
+ }
+
+ public JClassType[] getImplementedInterfaces() {
+ return null;
+ }
+
+ public String getJNISignature() {
+ return null;
+ }
+
+ public String[][] getMetaData(String tagName) {
+ return null;
+ }
+
+ public String[] getMetaDataTags() {
+ return null;
+ }
+
+ public JMethod getMethod(String name, JType[] paramTypes)
+ {
+ return null;
+ }
+
+ public JMethod[] getMethods() {
+ return null;
+ }
+
+ public String getJavahSignatureName() {
+ return null;
+ }
+
+ public String getJsniSignatureName() {
+ return null;
+ }
+
+ public String getName() {
+ return null;
+ }
+
+ public JClassType getNestedType(String typeName) {
+ return null;
+ }
+
+ public JClassType[] getNestedTypes() {
+ return null;
+ }
+
+ public TypeOracle getOracle() {
+ return null;
+ }
+
+ public JMethod[] getOverloads(String name) {
+ return null;
+ }
+
+ public JMethod[] getOverridableMethods() {
+ return null;
+ }
+
+ public JPackage getPackage() {
+ return null;
+ }
+
+ public String getQualifiedSourceName() {
+ return null;
+ }
+
+ public String getSimpleSourceName() {
+ return null;
+ }
+
+ public JClassType[] getSubtypes() {
+ return null;
+ }
+
+ public JClassType getSuperclass() {
+ return null;
+ }
+
+ public String getTypeHash() throws UnableToCompleteException {
+ return null;
+ }
+
+ public boolean isAbstract() {
+ return false;
+ }
+
+
+ public boolean isAssignableFrom(JClassType possibleSubtype) {
+ return false;
+ }
+
+ public boolean isAssignableTo(JClassType possibleSupertype) {
+ return false;
+ }
+
+ public JClassType isClass() {
+ return null;
+ }
+
+ public boolean isDefaultInstantiable() {
+ return false;
+ }
+
+ public JClassType isInterface() {
+ return null;
+ }
+
+ public boolean isLocalType() {
+ return false;
+ }
+
+ public boolean isMemberType() {
+ return false;
+ }
+
+ public JParameterizedType isParameterized() {
+ // intentional null
+ return null;
+ }
+
+ public JPrimitiveType isPrimitive() {
+ // intentional null
+ return null;
+ }
+
+ public boolean isPrivate() {
+ return false;
+ }
+
+ public boolean isProtected() {
+ return false;
+ }
+
+ public boolean isPublic() {
+ return false;
+ }
+
+ public boolean isStatic() {
+ return false;
+ }
+
+ public void setSuperclass(JClassType type) {
+ }
+
+ public String toString() {
+ return null;
+ }
+
+ protected int getModifierBits() {
+ return 0;
+ }
+
+ void addConstructor(JConstructor ctor) {
+ }
+
+ void addField(JField field) {
+ }
+
+ void addMethod(JMethod method) {
+ }
+
+ void addNestedType(JClassType type) {
+
+ }
+
+ JClassType findNestedTypeImpl(String[] typeName, int index) {
+ return null;
+ }
+
+ void notifySuperTypes() {
+ }
+
+ void removeFromSupertypes() {
+ }
+
+ public String getParameterizedQualifiedSourceName() {
+ return null;
+ }
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JConstructor.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JConstructor.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JConstructor.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,7 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public class JConstructor {
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JField.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JField.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JField.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,18 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public class JField implements HasMetaData{
+ public void addMetaData(String tagName, String[] values) {
+
+ }
+
+ public String[][] getMetaData(String tagName) {
+ return new String[0][];
+ }
+
+ public String[] getMetaDataTags() {
+ return new String[0];
+ }
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JMethod.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JMethod.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JMethod.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,64 @@
+
+package com.google.gwt.core.ext.typeinfo;
+
+public class JMethod {
+
+ private JType returnType;
+
+ public JMethod(JClassType enclosingType, String name, int declStart,
+ int declEnd, int bodyStart, int bodyEnd) {
+
+ }
+
+ public JClassType getEnclosingType() {
+ return null;
+ }
+
+ public String getReadableDeclaration() {
+ return null;
+ }
+
+ public String getReadableDeclaration(boolean noAccess, boolean noNative,
+ boolean noStatic, boolean noFinal, boolean noAbstract) {
+ return null;
+ }
+
+ public JType getReturnType() {
+ return null;
+ }
+
+ public boolean isAbstract() {
+ return false;
+ }
+
+ public JConstructor isConstructor() {
+ return null;
+ }
+
+ public boolean isFinal() {
+ return false;
+ }
+
+ public JMethod isMethod() {
+ return this;
+ }
+
+ public boolean isNative() {
+ return false;
+ }
+
+ public boolean isStatic() {
+ return false;
+ }
+
+ public void setReturnType(JType type) {
+ }
+
+ public String toString() {
+ return getReadableDeclaration();
+ }
+
+ String getReadableDeclaration(int modifierBits) {
+ return null;
+ }
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JPackage.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JPackage.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JPackage.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,10 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public class JPackage {
+ public String getName(){
+ return null;
+ }
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JParameterizedType.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JParameterizedType.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JParameterizedType.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,14 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public class JParameterizedType extends JType{
+ public String getJavahSignatureName() {
+ return null;
+ }
+
+ public String getJsniSignatureName() {
+ return null;
+ }
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JPrimitiveType.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JPrimitiveType.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JPrimitiveType.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,14 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public class JPrimitiveType extends JType{
+ public String getJavahSignatureName() {
+ return null;
+ }
+
+ public String getJsniSignatureName() {
+ return null;
+ }
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JType.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JType.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JType.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,13 @@
+package com.google.gwt.core.ext.typeinfo;
+
+
+public abstract class JType {
+ public JType() {
+ }
+
+
+ public abstract String getJavahSignatureName();
+
+ public abstract String getJsniSignatureName();
+
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/TypeOracle.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/TypeOracle.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/TypeOracle.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2007 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.google.gwt.core.ext.typeinfo;
+
+
+public class TypeOracle {
+
+ static String combine(String[] strings, int startIndex) {
+ return null;
+ }
+
+ static String[] modifierBitsToNames(int bits) {
+ return null;
+ }
+
+ public JClassType findType(String name) {
+ return null;
+ }
+
+ public JClassType findType(String pkgName, String typeName) {
+ return null;
+ }
+
+ public JClassType getJavaLangObject() {
+ return null;
+ }
+
+ public JType getParameterizedType(JClassType rawType, JType[] typeArgs) {
+ return null;
+ }
+
+ public long getReloadCount() {
+ return 0;
+ }
+
+ public JClassType getType(String name) {
+ return null;
+ }
+
+ public JClassType getType(String pkgName, String topLevelTypeSimpleName){
+ return null;
+ }
+
+ public JClassType[] getTypes() {
+ return null;
+ }
+
+ public void sort(JClassType[] types) {
+ }
+
+ public void sort(JField[] fields) {
+ }
+
+ public void sort(JMethod[] methods) {
+ }
+
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/user/rebind/ClassSourceFileComposerFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/user/rebind/ClassSourceFileComposerFactory.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/user/rebind/ClassSourceFileComposerFactory.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,25 @@
+package com.google.gwt.user.rebind;
+
+import com.google.gwt.core.ext.GeneratorContext;
+
+import java.io.PrintWriter;
+
+/**
+ *
+ */
+public class ClassSourceFileComposerFactory {
+
+ public ClassSourceFileComposerFactory(String a, String b){
+
+ }
+
+ public void addImplementedInterface(String name) {
+ }
+
+ public void addImport(String s) {
+ }
+
+ public SourceWriter createSourceWriter(GeneratorContext context, PrintWriter printWriter) {
+ return null;
+ }
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/user/rebind/SourceWriter.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/user/rebind/SourceWriter.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/user/rebind/SourceWriter.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,16 @@
+package com.google.gwt.user.rebind;
+
+import com.google.gwt.core.ext.TreeLogger;
+
+/**
+ *
+ */
+public interface SourceWriter {
+ public void println(String s);
+
+ public void commit(TreeLogger logger);
+
+ public void indent() ;
+
+ public void outdent() ;
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/rebind/EditorLauncherGenerator.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/rebind/EditorLauncherGenerator.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/rebind/EditorLauncherGenerator.java 2008-07-08 19:11:35 UTC (rev 20965)
@@ -0,0 +1,224 @@
+package org.drools.guvnor.rebind;
+/*
+ * Copyright 2008 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+import com.google.gwt.core.ext.TreeLogger;
+import com.google.gwt.core.ext.UnableToCompleteException;
+import com.google.gwt.core.ext.GeneratorContext;
+import com.google.gwt.core.ext.Generator;
+import com.google.gwt.core.ext.typeinfo.TypeOracle;
+import com.google.gwt.core.ext.typeinfo.JClassType;
+import com.google.gwt.user.rebind.ClassSourceFileComposerFactory;
+import com.google.gwt.user.rebind.SourceWriter;
+
+import java.io.PrintWriter;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.*;
+
+/**
+ * EditorLauncherGenerator generates the EditorLauncher implementation in order to
+ * simplify implementation of new content editors
+ */
+public class EditorLauncherGenerator extends Generator {
+
+ private static final String CLASS_SUFFIX = "Impl";
+ public static final String EDITORS_LIST = "guvnor-editors.properties";
+
+ SourceWriter sourceWriter;
+ List<EditorConfiguration> contentEditors;
+
+ public String generate(TreeLogger logger, GeneratorContext context, String typeName)
+ throws UnableToCompleteException {
+ String generatedClassQualifiedName = createClass(logger, context, typeName);
+ if (generatedClassQualifiedName == null) {
+ throw new UnableToCompleteException();
+ }
+ return generatedClassQualifiedName;
+ }
+
+ private String createClass(TreeLogger logger, GeneratorContext context, String typeName) {
+ try {
+ TypeOracle typeOracle = context.getTypeOracle();
+ JClassType originalType = typeOracle.getType(typeName);
+ String packageName = originalType.getPackage().getName();
+ String originalClassName = originalType.getSimpleSourceName();
+ String generatedClassName = originalClassName + CLASS_SUFFIX;
+
+ contentEditors = loadContentEditorsConfig();
+
+ ClassSourceFileComposerFactory classFactory = new ClassSourceFileComposerFactory(packageName, generatedClassName);
+
+ addImports(contentEditors, classFactory);
+
+ if (sourceWriter == null) {
+ sourceWriter = getSourceWriter(logger, context, packageName, generatedClassName, classFactory);
+ }
+
+ if (sourceWriter != null) {
+ writeClass(logger, classFactory, originalType, sourceWriter);
+ }
+
+ return originalType.getParameterizedQualifiedSourceName() + CLASS_SUFFIX;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ private void writeClass(TreeLogger logger, ClassSourceFileComposerFactory classFactory,
+ JClassType originalType, SourceWriter sourceWriter) throws IOException {
+
+ classFactory.addImplementedInterface(originalType.getName());
+ initializeImagesMap(contentEditors, sourceWriter);
+ writeGetEditorMethod(contentEditors, sourceWriter);
+
+ sourceWriter.println(
+ "public String getAssetFormatIcon(String format) {\n" +
+ " String result = (String) TYPE_IMAGES.get( format );\n" +
+ " if (result == null) {\n" +
+ " return \"rule_asset.gif\";\n" +
+ " } else {\n" +
+ " return result;\n" +
+ " }\n" +
+ "}"
+ );
+
+ sourceWriter.commit(logger);
+ }
+
+ private void addImports(List<EditorConfiguration> contentEditors, ClassSourceFileComposerFactory classFactory) {
+ //common imports
+ classFactory.addImport("java.util.HashMap");
+ classFactory.addImport("java.util.Map");
+ classFactory.addImport("com.google.gwt.user.client.ui.Widget");
+ classFactory.addImport("org.drools.guvnor.client.rpc.RuleAsset");
+ classFactory.addImport("org.drools.guvnor.client.rpc.RuleContentText");
+ classFactory.addImport("org.drools.guvnor.client.common.AssetFormats");
+
+ //collect the uniq class names from editors configuration
+ Set<String> classesToImport = new HashSet<String>();
+ for (EditorConfiguration editorConfiguration : contentEditors) {
+ classesToImport.add(editorConfiguration.wrapper);
+ classesToImport.add(editorConfiguration.widget);
+ }
+
+ for (String className : classesToImport) {
+ if (!"".equals(className)) {
+ classFactory.addImport(className);
+ }
+ }
+ }
+
+ private void writeGetEditorMethod(List<EditorConfiguration> contentEditors, SourceWriter sourceWriter) {
+ //TODO: public Widget getEditorViewer(RuleAsset asset, RuleViewer viewer)
+
+ sourceWriter.println("public Widget getEditorViewer(RuleAsset asset, RuleViewer viewer) {");
+ for (EditorConfiguration editorConfiguration : contentEditors) {
+ sourceWriter.println(" if ( asset.metaData.format.equals(\"" + editorConfiguration.format + "\") ){");
+
+ boolean hasWrapper = editorConfiguration.wrapper != null && !"".equals(editorConfiguration.wrapper);
+ String retWidget = "new " + editorConfiguration.widget + "(asset, viewer)";
+ String retWrapped = "new " + editorConfiguration.wrapper + "(" + retWidget + ", asset)";
+
+ sourceWriter.println(" return " + (hasWrapper ? retWrapped : retWidget) + ";");
+ sourceWriter.println(" }");
+ }
+
+ sourceWriter.println(" return new DefaultContentUploadEditor( asset, viewer );");
+ sourceWriter.println("}");
+
+ /*sourceWriter.println(
+ "public Widget getEditorViewer2(RuleAsset asset, RuleViewer viewer) {\n" +
+ " if ( asset.metaData.format.equals( AssetFormats.BUSINESS_RULE ) ) {\n" +
+ " return new RuleValidatorWrapper( new RuleModeller( asset ), asset);\n" +
+ " } else if ( asset.metaData.format.equals( AssetFormats.DSL_TEMPLATE_RULE ) ) {\n" +
+ " return new RuleValidatorWrapper(new DSLRuleEditor( asset ), asset);\n" +
+ " } else if ( asset.metaData.format.equals( AssetFormats.MODEL ) ) {\n" +
+ " return new ModelAttachmentFileWidget( asset, viewer );\n" +
+ " } else if (asset.metaData.format.equals( AssetFormats.DECISION_SPREADSHEET_XLS )){\n" +
+ " return new RuleValidatorWrapper(new DecisionTableXLSWidget( asset, viewer ), asset);\n" +
+ " } else if (asset.metaData.format.equals( AssetFormats.RULE_FLOW_RF )) {\n" +
+ " return new RuleFlowUploadWidget(asset, viewer);\n" +
+ " } else if (asset.metaData.format.equals( AssetFormats.DRL )) {\n" +
+ " return new RuleValidatorWrapper(new DefaultRuleContentWidget( asset ), asset);\n" +
+ " } else if (asset.metaData.format.equals( AssetFormats.ENUMERATION )) {\n" +
+ " return new RuleValidatorWrapper(new DefaultRuleContentWidget( asset ), asset);\n" +
+ " } else if (asset.metaData.format.equals(AssetFormats.TEST_SCENARIO)) {\n" +
+ " return new ScenarioWidget(asset);\n" +
+ " } else if (asset.metaData.format.equals(AssetFormats.DECISION_TABLE_GUIDED)) {\n" +
+ " return new RuleValidatorWrapper(new GuidedDecisionTableWidget(asset), asset);\n" +
+ " } else if (asset.metaData.format.equals(AssetFormats.DRL_MODEL)) {\n" +
+ " return new RuleValidatorWrapper(new FactModelWidget(asset), asset);\n" +
+ " } else {\n" +
+ " return new DefaultContentUploadEditor( asset, viewer );\n" +
+ " }\n" +
+ "}");*/
+ }
+
+ private void initializeImagesMap(List<EditorConfiguration> contentEditors, SourceWriter sourceWriter) {
+ sourceWriter.println("public final Map TYPE_IMAGES = new HashMap(){");
+ sourceWriter.indent();
+ sourceWriter.println("{");
+ sourceWriter.indent();
+ for (EditorConfiguration editorConfiguration : contentEditors) {
+ sourceWriter.println("put(\"" + editorConfiguration.format +
+ "\",\"" + editorConfiguration.icon + "\");");
+ }
+ sourceWriter.outdent();
+ sourceWriter.println("}");
+ sourceWriter.outdent();
+ sourceWriter.println("};");
+ }
+
+ private List<EditorConfiguration> loadContentEditorsConfig() throws IOException {
+ Properties editors = new Properties();
+ editors.load(new FileInputStream(EDITORS_LIST));
+ List<EditorConfiguration> editorConfigs = new ArrayList<EditorConfiguration>();
+ for (Object o : editors.keySet()) {
+ String key = (String) o;
+ String value = editors.getProperty(key);
+ String[] values = value.split(";");
+ editorConfigs.add(new EditorConfiguration(key, values[0], values[1], values[2]));
+ }
+ return editorConfigs;
+ }
+
+ private SourceWriter getSourceWriter(TreeLogger logger,
+ GeneratorContext context,
+ String packageName,
+ String generatedClassName,
+ ClassSourceFileComposerFactory classFactory) {
+ PrintWriter printWriter = context.tryCreate(logger, packageName, generatedClassName);
+ return classFactory.createSourceWriter(context, printWriter);
+ }
+
+ class EditorConfiguration {
+ String format;
+ String widget;
+ String wrapper;
+ String icon;
+
+ EditorConfiguration(String format, String widget, String wrapper, String icon) {
+ this.format = format;
+ this.widget = widget;
+ this.wrapper = wrapper;
+ this.icon = icon;
+ }
+ }
+
+}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list