[jboss-svn-commits] JBL Code SVN: r20339 - labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/descr.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jun 5 10:06:37 EDT 2008


Author: porcelli
Date: 2008-06-05 10:06:37 -0400 (Thu, 05 Jun 2008)
New Revision: 20339

Modified:
   labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java
Log:
JavavaDoc ;)

Modified: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java
===================================================================
--- labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java	2008-06-05 14:04:29 UTC (rev 20338)
+++ labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java	2008-06-05 14:06:37 UTC (rev 20339)
@@ -15,6 +15,14 @@
  */
 public class DescrFactory {
 
+	/**
+	 * Factory method that creates a PackageDescr based on a identifier list.
+	 * 
+	 * @param idList
+	 *            identifier list that composes package, may be null
+	 * @return PackageDescr filled
+	 * @see PackageDescr
+	 */
 	public PackageDescr createPackage(List<DroolsTree> idList) {
 		PackageDescr packageDescr = new PackageDescr(
 				createDotedIdFromList(idList));
@@ -32,6 +40,19 @@
 		return packageDescr;
 	}
 
+	/**
+	 * Factory method that creates an AttributeDescr based on name and value.
+	 * 
+	 * If value is single or double quoted, the quotes are removed. And if value
+	 * is null AttributeDescr is setted to true (boolean value).
+	 * 
+	 * @param attributeName
+	 *            attribute name
+	 * @param value
+	 *            attribute value, may be null (default value is true)
+	 * @return AttributeDescr filled
+	 * @see AttributeDescr
+	 */
 	public AttributeDescr createAttribute(DroolsTree attributeName,
 			DroolsTree value) {
 		AttributeDescr attributeDescr = new AttributeDescr(attributeName
@@ -42,12 +63,7 @@
 		attributeDescr.setStartCharacter(getStartOffsetLocation(attributeName));
 
 		if (null != value) {
-			if (value.getText().startsWith("\"") || value.getText().startsWith("'")) {
-				attributeDescr.setValue(value.getText().substring(1,
-						value.getText().length() - 1));
-			} else {
-				attributeDescr.setValue(value.getText());
-			}
+			attributeDescr.setValue(getCleanId(value));
 			attributeDescr.setEndLocation(getLineLocation(value),
 					getEndOffsetLocation(value));
 			attributeDescr.setEndCharacter(getEndOffsetLocation(value));
@@ -61,6 +77,18 @@
 		return attributeDescr;
 	}
 
+	/**
+	 * Factory method that creates a FunctionImportDescr.
+	 * 
+	 * @param importStart
+	 *            import statement, used to get offset location
+	 * @param idList
+	 *            identifier list that composes imported function
+	 * @param dotStar
+	 *            token that represents a ".*", may be null
+	 * @return FunctionImportDescr filled
+	 * @see FunctionImportDescr
+	 */
 	public FunctionImportDescr createFunctionImport(DroolsTree importStart,
 			List<DroolsTree> idList, DroolsTree dotStar) {
 
@@ -68,6 +96,18 @@
 				new FunctionImportDescr(), importStart, idList, dotStar);
 	}
 
+	/**
+	 * Factory method that creates an ImportDescr.
+	 * 
+	 * @param importStart
+	 *            import statement, used to get offset location
+	 * @param idList
+	 *            identifier list that composes import
+	 * @param dotStar
+	 *            token that represents a ".*", may be null
+	 * @return ImportDescr filled
+	 * @see ImportDescr
+	 */
 	public ImportDescr createImport(DroolsTree importStart,
 			List<DroolsTree> idList, DroolsTree dotStar) {
 
@@ -75,6 +115,21 @@
 				dotStar);
 	}
 
+	/**
+	 * Generic method that creates import
+	 * 
+	 * @param importDescr
+	 *            import descriptor (FunctionImportDescr or ImportDescr)
+	 * @param importStart
+	 *            import statement, used to get offset location
+	 * @param idList
+	 *            identifier list that composes imported name
+	 * @param dotStar
+	 *            token that represents a ".*", may be null
+	 * @return ImportDescr filled
+	 * @see FunctionImportDescr
+	 * @see ImportDescr
+	 */
 	private ImportDescr createGenericImport(ImportDescr importDescr,
 			DroolsTree importStart, List<DroolsTree> idList, DroolsTree dotStar) {
 		ImportDescr genericImport = importDescr;
@@ -103,6 +158,18 @@
 		return genericImport;
 	}
 
+	/**
+	 * Factory method that creates a GlobalDescr.
+	 * 
+	 * @param start
+	 *            global statement, used to get offset location
+	 * @param dataType
+	 *            dataType descriptor (generated by createDataType method)
+	 * @param globalId
+	 *            global identifier
+	 * @return GlobalDescr filled
+	 * @see GlobalDescr
+	 */
 	public GlobalDescr createGlobal(DroolsTree start, BaseDescr dataType,
 			DroolsTree globalId) {
 		GlobalDescr globalDescr = new GlobalDescr();
@@ -119,6 +186,23 @@
 		return globalDescr;
 	}
 
+	/**
+	 * Factory method that creates a FunctionDescr.
+	 * 
+	 * @param start
+	 *            function statement, used to get offset location
+	 * @param dataType
+	 *            dataType descriptor (generated by createDataType method), may
+	 *            be null
+	 * @param functionId
+	 *            function identifier
+	 * @param params
+	 *            a list, that contains pair of parameter name and data type
+	 * @param content
+	 *            chunk data
+	 * @return FunctionDescr filled
+	 * @see FunctionDescr
+	 */
 	public FunctionDescr createFunction(DroolsTree start, BaseDescr dataType,
 			DroolsTree functionId, List<Map<BaseDescr, BaseDescr>> params,
 			DroolsTree content) {
@@ -147,6 +231,20 @@
 		return functionDescr;
 	}
 
+	/**
+	 * Factory method that creates a FactTemplateDescr.
+	 * 
+	 * @param start
+	 *            template statement, used to get offset location
+	 * @param id
+	 *            template identifier
+	 * @param slotList
+	 *            a slot list
+	 * @param end
+	 *            end statement, used to get offset location
+	 * @return FactTemplateDescr filled
+	 * @see FactTemplateDescr
+	 */
 	public FactTemplateDescr createFactTemplate(DroolsTree start,
 			DroolsTree id, List<FieldTemplateDescr> slotList, DroolsTree end) {
 		FactTemplateDescr factTemplateDescr = new FactTemplateDescr(
@@ -164,6 +262,16 @@
 		return factTemplateDescr;
 	}
 
+	/**
+	 * Factory method that creates a FieldTemplateDescr.
+	 * 
+	 * @param dataType
+	 *            dataType descriptor (generated by createDataType method)
+	 * @param id
+	 *            field template identifier
+	 * @return FieldTemplateDescr filled
+	 * @see FieldTemplateDescr
+	 */
 	public FieldTemplateDescr createFieldTemplate(BaseDescr dataType,
 			DroolsTree id) {
 		FieldTemplateDescr fieldTemplateDescr = new FieldTemplateDescr();
@@ -179,6 +287,24 @@
 		return fieldTemplateDescr;
 	}
 
+	/**
+	 * Factory method that creates a QueryDescr.
+	 * 
+	 * @param start
+	 *            query statement, used to get offset location
+	 * @param id
+	 *            query identifier
+	 * @param params
+	 *            a list, that contains pair of parameter name and data type,
+	 *            may be null. Parameter without data type Object is assumed.
+	 * @param andDescr
+	 *            AndDescr returned by lhs block
+	 * @param end
+	 *            end statement, used to get offset location
+	 * @return QueryDescr filled
+	 * @see QueryDescr
+	 * @see AndDescr
+	 */
 	public QueryDescr createQuery(DroolsTree start, DroolsTree id,
 			List<Map<BaseDescr, BaseDescr>> params, AndDescr andDescr,
 			DroolsTree end) {
@@ -199,8 +325,10 @@
 					}
 				}
 			}
-			queryDescr.setParameters(paramList.toArray(new String[paramList.size()]));
-			queryDescr.setParameterTypes(dataTypeList.toArray(new String[dataTypeList.size()]));
+			queryDescr.setParameters(paramList.toArray(new String[paramList
+					.size()]));
+			queryDescr.setParameterTypes(dataTypeList
+					.toArray(new String[dataTypeList.size()]));
 		}
 
 		queryDescr.setLhs(andDescr);
@@ -213,6 +341,22 @@
 		return queryDescr;
 	}
 
+	/**
+	 * Factory method that creates a RuleDescr.
+	 * 
+	 * @param start
+	 *            rule statement, used to get offset location
+	 * @param id
+	 *            rule identifier
+	 * @param attributeList
+	 *            attribute list
+	 * @param andDescr
+	 *            AndDescr returned by lhs block, may be null
+	 * @param content
+	 *            chunk data
+	 * @return RuleDescr filled
+	 * @see RuleDescr
+	 */
 	public RuleDescr createRule(DroolsTree start, DroolsTree id,
 			List<AttributeDescr> attributeList, AndDescr andDescr,
 			DroolsTree content) {
@@ -245,7 +389,8 @@
 			idx++;
 		buf = buf.substring(idx, buf.length() - 3);
 		ruleDescr.setConsequence(buf);
-		ruleDescr.setConsequenceLocation(getLineLocation(content), getColumnLocation(content));
+		ruleDescr.setConsequenceLocation(getLineLocation(content),
+				getColumnLocation(content));
 
 		ruleDescr.setLocation(getLineLocation(start), getColumnLocation(start));
 		ruleDescr.setEndCharacter(getEndOffsetLocation(content));
@@ -253,8 +398,34 @@
 		return ruleDescr;
 	}
 
-	// LHS
-	public BaseDescr createOr(DroolsTree start, List<BaseDescr> lhsList) {
+	/**
+	 * Factory method that creates an Argument.
+	 * 
+	 * @param id
+	 *            argument identifier
+	 * @param rightList
+	 *            right square list
+	 * @return BaseDescr (argument info) filled.
+	 */
+	public BaseDescr createArgument(DroolsTree id, List<DroolsTree> rightList) {
+		List<DroolsTree> idList = new ArrayList<DroolsTree>(1);
+		idList.add(id);
+		return createGenericBaseDescr(idList, rightList);
+	}
+
+	// LHS Start
+	/**
+	 * Factory method that creates an OrDescr. This method handles prefixed and
+	 * infixed formats.
+	 * 
+	 * @param start
+	 *            "or" statement or symbol, used to get offset location
+	 * @param lhsList
+	 *            binded descriptor list
+	 * @return OrDescr filled.
+	 * @see OrDescr
+	 */
+	public OrDescr createOr(DroolsTree start, List<BaseDescr> lhsList) {
 		OrDescr or = new OrDescr();
 		or.setLocation(getColumnLocation(start), getColumnLocation(start));
 		or.setStartCharacter(getStartOffsetLocation(start));
@@ -267,7 +438,18 @@
 		return or;
 	}
 
-	public BaseDescr createAnd(DroolsTree start, List<BaseDescr> lhsList) {
+	/**
+	 * Factory method that creates an AndDescr. This method handles prefixed and
+	 * infixed formats.
+	 * 
+	 * @param start
+	 *            "and" statement or symbol, used to get offset location
+	 * @param lhsList
+	 *            binded descriptor list
+	 * @return AndDescr filled.
+	 * @see AndDescr
+	 */
+	public AndDescr createAnd(DroolsTree start, List<BaseDescr> lhsList) {
 		AndDescr and = new AndDescr();
 		and.setLocation(getColumnLocation(start), getColumnLocation(start));
 		and.setStartCharacter(getStartOffsetLocation(start));
@@ -280,7 +462,17 @@
 		return and;
 	}
 
-	public BaseDescr createExists(DroolsTree start, BaseDescr baseDescr) {
+	/**
+	 * Factory method that creates an ExistsDescr.
+	 * 
+	 * @param start
+	 *            exists statement, used to get offset location
+	 * @param baseDescr
+	 *            binded descriptor
+	 * @return ExistsDescr filled.
+	 * @see ExistsDescr
+	 */
+	public ExistsDescr createExists(DroolsTree start, BaseDescr baseDescr) {
 		ExistsDescr exists = new ExistsDescr();
 		exists.setLocation(getColumnLocation(start), getColumnLocation(start));
 		exists.setStartCharacter(getStartOffsetLocation(start));
@@ -290,7 +482,17 @@
 		return exists;
 	}
 
-	public BaseDescr createNot(DroolsTree start, BaseDescr baseDescr) {
+	/**
+	 * Factory method that creates a NotDescr.
+	 * 
+	 * @param start
+	 *            not statement, used to get offset location
+	 * @param baseDescr
+	 *            binded descriptor
+	 * @return NotDescr filled.
+	 * @see NotDescr
+	 */
+	public NotDescr createNot(DroolsTree start, BaseDescr baseDescr) {
 		NotDescr not = new NotDescr();
 		not.setLocation(getColumnLocation(start), getColumnLocation(start));
 		not.setStartCharacter(getStartOffsetLocation(start));
@@ -300,7 +502,17 @@
 		return not;
 	}
 
-	public BaseDescr createEval(DroolsTree start, DroolsTree content) {
+	/**
+	 * Factory method that creates an EvalDescr.
+	 * 
+	 * @param start
+	 *            eval statement, used to get offset location
+	 * @param content
+	 *            chunk data
+	 * @return EvalDescr filled.
+	 * @see EvalDescr
+	 */
+	public EvalDescr createEval(DroolsTree start, DroolsTree content) {
 		EvalDescr eval = new EvalDescr();
 		eval.setLocation(getColumnLocation(start), getColumnLocation(start));
 		eval.setStartCharacter(getStartOffsetLocation(start));
@@ -310,7 +522,17 @@
 		return eval;
 	}
 
-	public BaseDescr createForAll(DroolsTree start, List<BaseDescr> lhsList) {
+	/**
+	 * Factory method that creates a ForallDescr.
+	 * 
+	 * @param start
+	 *            forall statement, used to get offset location
+	 * @param lhsList
+	 *            binded descriptor list
+	 * @return ForallDescr filled.
+	 * @see ForallDescr
+	 */
+	public ForallDescr createForAll(DroolsTree start, List<BaseDescr> lhsList) {
 		ForallDescr forAll = new ForallDescr();
 		forAll.setLocation(getColumnLocation(start), getColumnLocation(start));
 		forAll.setStartCharacter(getStartOffsetLocation(start));
@@ -324,11 +546,40 @@
 		return forAll;
 	}
 
-	public AccumulateDescr createAccumulate(){
+	/**
+	 * Factory method that creates a PatternDescr.
+	 * 
+	 * @param from
+	 *            lhs pattern
+	 * @param fromSource
+	 *            generic pattern source
+	 * @return PatternDescr filled.
+	 * @see PatternDescr
+	 */
+	public PatternDescr setupFrom(BaseDescr from, PatternSourceDescr fromSource) {
+		PatternDescr tempFrom = (PatternDescr) from;
+		tempFrom.setSource(fromSource);
+		return tempFrom;
+	}
+
+	/**
+	 * Factory method that creates an empty AccumulateDescr.
+	 */
+	public AccumulateDescr createAccumulate() {
 		return new AccumulateDescr();
 	}
 
-	public PatternSourceDescr createAccumulate(DroolsTree start,
+	/**
+	 * Factory method that creates an AccumulateDescr.
+	 * 
+	 * @param start
+	 *            accumulate statement, used to get offset location
+	 * @param baseDescr
+	 *            binded descriptor
+	 * @return AccumulateDescr filled.
+	 * @see AccumulateDescr
+	 */
+	public AccumulateDescr createAccumulate(DroolsTree start,
 			BaseDescr baseDescr) {
 		AccumulateDescr accumulate = new AccumulateDescr();
 		accumulate.setLocation(getColumnLocation(start),
@@ -339,8 +590,39 @@
 		return accumulate;
 	}
 
-	public PatternSourceDescr createEntryPoint(DroolsTree start,
-			DroolsTree entryId) {
+	/**
+	 * Factory method that creates a CollectDescr.
+	 * 
+	 * @param start
+	 *            collect statement, used to get offset location
+	 * @param baseDescr
+	 *            binded descriptor
+	 * @return CollectDescr filled.
+	 * @see CollectDescr
+	 */
+	public CollectDescr createCollect(DroolsTree start, BaseDescr baseDescr) {
+		CollectDescr collect = new CollectDescr();
+		collect.setLocation(getColumnLocation(start), getColumnLocation(start));
+		collect.setStartCharacter(getStartOffsetLocation(start));
+		collect
+				.setEndLocation(baseDescr.getEndLine(), baseDescr
+						.getEndColumn());
+		collect.setEndCharacter(baseDescr.getEndCharacter());
+		collect.setInputPattern((PatternDescr) baseDescr);
+		return collect;
+	}
+
+	/**
+	 * Factory method that creates an EntryPointDescr.
+	 * 
+	 * @param start
+	 *            entry point statement, used to get offset location
+	 * @param entryId
+	 *            entry point identifier
+	 * @return EntryPointDescr filled.
+	 * @see EntryPointDescr
+	 */
+	public EntryPointDescr createEntryPoint(DroolsTree start, DroolsTree entryId) {
 		EntryPointDescr entryPoint = new EntryPointDescr();
 		entryPoint.setLocation(getColumnLocation(start),
 				getColumnLocation(start));
@@ -352,19 +634,80 @@
 		return entryPoint;
 	}
 
-	public PatternSourceDescr createCollect(DroolsTree start,
-			BaseDescr baseDescr) {
-		CollectDescr collect = new CollectDescr();
-		collect.setLocation(getColumnLocation(start), getColumnLocation(start));
-		collect.setStartCharacter(getStartOffsetLocation(start));
-		collect
-				.setEndLocation(baseDescr.getEndLine(), baseDescr
-						.getEndColumn());
-		collect.setEndCharacter(baseDescr.getEndCharacter());
-		collect.setInputPattern((PatternDescr) baseDescr);
-		return collect;
+	/**
+	 * Method that setups the AccumulateDescr, setting all the chunk data
+	 * 
+	 * @param accumulateParam
+	 *            accumulate descriptor
+	 * @param start
+	 *            start (init) statement, used to get offset location
+	 * @param initChunk
+	 *            init chunk data
+	 * @param actionChunk
+	 *            action chunk data
+	 * @param resultChunk
+	 *            result chunk data
+	 * @param reverseChunk
+	 *            reverse chunk data, may be null
+	 * @return AccumulateDescr filled
+	 * @see AccumulateDescr
+	 */
+	public AccumulateDescr setupAccumulateInit(
+			PatternSourceDescr accumulateParam, DroolsTree start,
+			DroolsTree initChunk, DroolsTree actionChunk,
+			DroolsTree resultChunk, DroolsTree reverseChunk) {
+		AccumulateDescr accumulate = (AccumulateDescr) accumulateParam;
+		accumulate.setEndCharacter(getEndOffsetLocation(resultChunk));
+		accumulate.setInitCode(initChunk.getText().substring(1,
+				initChunk.getText().length() - 1));
+		accumulate.setActionCode(actionChunk.getText().substring(1,
+				actionChunk.getText().length() - 1));
+		accumulate.setResultCode(resultChunk.getText().substring(1,
+				resultChunk.getText().length() - 1));
+		if (reverseChunk != null) {
+			accumulate.setReverseCode(reverseChunk.getText().substring(1,
+					reverseChunk.getText().length() - 1));
+		}
+
+		return accumulate;
 	}
 
+	/**
+	 * Method that setups the AccumulateDescr, setting identifier and expression
+	 * chunk data
+	 * 
+	 * @param accumulateParam
+	 *            accumulate descriptor
+	 * @param id
+	 *            accumulate identifier
+	 * @param expressionChunk
+	 *            chunk data
+	 * @return AccumulateDescr filled
+	 * @see AccumulateDescr
+	 */
+	public AccumulateDescr setupAccumulateId(
+			PatternSourceDescr accumulateParam, DroolsTree id,
+			DroolsTree expressionChunk) {
+		AccumulateDescr accumulate = (AccumulateDescr) accumulateParam;
+		accumulate.setEndCharacter(getEndOffsetLocation(expressionChunk));
+
+		accumulate.setExternalFunction(true);
+		accumulate.setFunctionIdentifier(id.getText());
+		accumulate.setExpression(expressionChunk.getText().substring(1,
+				expressionChunk.getText().length() - 1));
+		return accumulate;
+	}
+
+	/**
+	 * Factory method that creates an AccessorDescr.
+	 * 
+	 * @param id
+	 *            accessor identifier
+	 * @param chunk
+	 *            chunk data, may be null
+	 * @return AccessorDescr filled
+	 * @see AccessorDescr
+	 */
 	public AccessorDescr createAccessor(DroolsTree id, DroolsTree chunk) {
 		AccessorDescr accessor = new AccessorDescr(id.getText());
 		accessor.setLocation(getLineLocation(id), getColumnLocation(id));
@@ -383,6 +726,40 @@
 		return accessor;
 	}
 
+	/**
+	 * Setup the char offset for AccessorDescr.
+	 * 
+	 * @param accessorDescr
+	 *            descriptor
+	 * @return AccessorDescr with char offset filled
+	 */
+	public AccessorDescr setupAccessorOffset(AccessorDescr accessorDescr) {
+		if (null != accessorDescr.getInvokers()
+				&& accessorDescr.getInvokers().size() > 0) {
+			BaseDescr desc = (BaseDescr) accessorDescr.getInvokers().get(
+					accessorDescr.getInvokers().size() - 1);
+			accessorDescr.setEndCharacter(desc.getEndCharacter());
+		}
+		return accessorDescr;
+	}
+
+	/**
+	 * Factory method that based on parenChunk parameter defines if it creates a
+	 * FieldAccessDescr or a MethodAccessDescr.
+	 * 
+	 * @param start
+	 *            start (dot) token, used to get offset location
+	 * @param id
+	 *            identifier
+	 * @param squareChunk
+	 *            square chunk data, may be null
+	 * @param parenChunk
+	 *            paren chunk data, may be null
+	 * @return DeclarativeInvokerDescr filled.
+	 * @see DeclarativeInvokerDescr
+	 * @see FieldAccessDescr
+	 * @see MethodAccessDescr
+	 */
 	public DeclarativeInvokerDescr createExpressionChain(DroolsTree start,
 			DroolsTree id, DroolsTree squareChunk, DroolsTree parenChunk) {
 		DeclarativeInvokerDescr declarativeInvoker = null;
@@ -408,16 +785,13 @@
 		return declarativeInvoker;
 	}
 
-	public AccessorDescr setupAccessorOffset(AccessorDescr accessorDescr) {
-		if (null != accessorDescr.getInvokers()
-				&& accessorDescr.getInvokers().size() > 0) {
-			BaseDescr desc = (BaseDescr) accessorDescr.getInvokers().get(
-					accessorDescr.getInvokers().size() - 1);
-			accessorDescr.setEndCharacter(desc.getEndCharacter());
-		}
-		return accessorDescr;
-	}
-
+	/**
+	 * Factory method that creates a FromDescr.
+	 * 
+	 * @param accessor
+	 *            binded accessor descriptor
+	 * @return FromDescr filled
+	 */
 	public FromDescr createFromSource(AccessorDescr accessor) {
 		FromDescr from = new FromDescr();
 		from.setDataSource(accessor);
@@ -425,45 +799,18 @@
 		return from;
 	}
 
-	public BaseDescr setupFrom(BaseDescr from, PatternSourceDescr fromSource) {
-		PatternDescr tempFrom = (PatternDescr) from;
-		tempFrom.setSource(fromSource);
-		return tempFrom;
-	}
-
-	public AccumulateDescr setupAccumulateInit(
-			PatternSourceDescr accumulateParam, DroolsTree start,
-			DroolsTree initChunk, DroolsTree actionChunk,
-			DroolsTree resultChunk, DroolsTree reverseChunk) {
-		AccumulateDescr accumulate = (AccumulateDescr) accumulateParam;
-		accumulate.setEndCharacter(getEndOffsetLocation(resultChunk));
-		accumulate.setInitCode(initChunk.getText().substring(1,
-				initChunk.getText().length() - 1));
-		accumulate.setActionCode(actionChunk.getText().substring(1,
-				actionChunk.getText().length() - 1));
-		accumulate.setResultCode(resultChunk.getText().substring(1,
-				resultChunk.getText().length() - 1));
-		if (reverseChunk != null) {
-			accumulate.setReverseCode(reverseChunk.getText().substring(1,
-					reverseChunk.getText().length() - 1));
-		}
-
-		return accumulate;
-	}
-
-	public AccumulateDescr setupAccumulateId(
-			PatternSourceDescr accumulateParam, DroolsTree id,
-			DroolsTree expressionChunk) {
-		AccumulateDescr accumulate = (AccumulateDescr) accumulateParam;
-		accumulate.setEndCharacter(getEndOffsetLocation(expressionChunk));
-
-		accumulate.setExternalFunction(true);
-		accumulate.setFunctionIdentifier(id.getText());
-		accumulate.setExpression(expressionChunk.getText().substring(1,
-				expressionChunk.getText().length() - 1));
-		return accumulate;
-	}
-
+	/**
+	 * Factory method that creates a PatternDescr.
+	 * 
+	 * FieldBindingDescr holds the original field descriptor, first it is
+	 * necessary add the field and later the bindind field info.
+	 * 
+	 * @param dataType
+	 *            pattern data type
+	 * @param exprList
+	 *            binded expression list, may be null or empty
+	 * @return
+	 */
 	public PatternDescr createPattern(BaseDescr dataType,
 			List<BaseDescr> exprList) {
 		PatternDescr pattern = new PatternDescr();
@@ -505,6 +852,19 @@
 		return pattern;
 	}
 
+	/**
+	 * Method that setups a pattern binding.
+	 * 
+	 * The fact may be an or descriptor and the or elements should be binded.
+	 * 
+	 * @param label
+	 *            bind identifier
+	 * @param fact
+	 *            fact descriptor
+	 * @return fact binded.
+	 * @see PatternDescr
+	 * @see OrDescr
+	 */
 	public BaseDescr setupPatternBiding(DroolsTree label, BaseDescr fact) {
 		fact.setStartCharacter(getStartOffsetLocation(label));
 		if (fact instanceof OrDescr) {
@@ -518,7 +878,19 @@
 		return fact;
 	}
 
-	public BaseDescr createFactOr(DroolsTree start, BaseDescr left,
+	/**
+	 * Factory method that creates an OrDescr.
+	 * 
+	 * @param start
+	 *            "or" statement or symbol, used to get offset location
+	 * @param left
+	 *            left descriptor
+	 * @param right
+	 *            right descriptor
+	 * @return OrDescr filled.
+	 * @see OrDescr
+	 */
+	public OrDescr createFactOr(DroolsTree start, BaseDescr left,
 			BaseDescr right) {
 		OrDescr or = new OrDescr();
 		or.addDescr(left);
@@ -526,128 +898,180 @@
 		return or;
 	}
 
-	public BaseDescr createStringLiteralRestriction(DroolsTree s) {
-		LiteralRestrictionDescr stringLit = new LiteralRestrictionDescr();
-		stringLit.setType(LiteralRestrictionDescr.TYPE_STRING);
-		stringLit.setText(s.getText().substring(1, s.getText().length() - 1));
-		return stringLit;
+	/**
+	 * Setup FieldConstraintDescr
+	 * 
+	 * @param field
+	 *            field descriptor
+	 * @param descr
+	 *            binded descriptor
+	 * @return FieldConstraintDescr filled
+	 * @see FieldConstraintDescr
+	 */
+	public FieldConstraintDescr setupFieldConstraint(
+			FieldConstraintDescr field, BaseDescr descr) {
+		if (null != descr && descr instanceof RestrictionDescr) {
+			field.getRestriction().addOrMerge((RestrictionDescr) descr);
+		}
+		return field;
 	}
 
-	public BaseDescr createIntLiteralRestriction(DroolsTree i) {
-		LiteralRestrictionDescr intLit = new LiteralRestrictionDescr();
-		intLit.setType(LiteralRestrictionDescr.TYPE_NUMBER);
-		intLit.setText(i.getText());
-		return intLit;
+	/**
+	 * Factory method that creates a FieldBindingDescr.
+	 * 
+	 * @param label
+	 *            bind identifier
+	 * @param descr
+	 *            binded field constraint descriptor
+	 * @return FieldBindingDescr filled
+	 * @see FieldBindingDescr
+	 */
+	public FieldBindingDescr createFieldBinding(DroolsTree label,
+			BaseDescr descr) {
+		FieldBindingDescr fieldBiding = new FieldBindingDescr();
+		fieldBiding.setLocation(getLineLocation(label),
+				getColumnLocation(label));
+		fieldBiding.setStartCharacter(getStartOffsetLocation(label));
+		FieldConstraintDescr fieldConstraint = (FieldConstraintDescr) descr;
+		fieldBiding.setIdentifier(label.getText());
+		fieldBiding.setFieldName(fieldConstraint.getFieldName());
+		fieldBiding.setFieldConstraint(fieldConstraint);
+		return fieldBiding;
 	}
 
-	public BaseDescr createFloatLiteralRestriction(DroolsTree f) {
-		LiteralRestrictionDescr floatLit = new LiteralRestrictionDescr();
-		floatLit.setType(LiteralRestrictionDescr.TYPE_NUMBER);
-		floatLit.setText(f.getText());
-		return floatLit;
-	}
-
-	public BaseDescr createBoolLiteralRestriction(DroolsTree b) {
-		LiteralRestrictionDescr boolLit = new LiteralRestrictionDescr();
-		boolLit.setType(LiteralRestrictionDescr.TYPE_BOOLEAN);
-		boolLit.setText(b.getText());
-		return boolLit;
-	}
-
-	public BaseDescr createNullLiteralRestriction(DroolsTree n) {
-		LiteralRestrictionDescr nullLit = new LiteralRestrictionDescr();
-		nullLit.setType(LiteralRestrictionDescr.TYPE_NULL);
-		nullLit.setText(null);
-		return nullLit;
-	}
-
-	public BaseDescr createReturnValue(DroolsTree pc) {
-		ReturnValueRestrictionDescr returnValue = new ReturnValueRestrictionDescr();
-		returnValue.setContent(pc.getText().substring(1,
+	/**
+	 * Factory method that creates a PredicateDescr.
+	 * 
+	 * @param pc
+	 *            chunk data
+	 * @return PredicateDescr filled
+	 * @see PredicateDescr
+	 */
+	public PredicateDescr createPredicate(DroolsTree pc) {
+		PredicateDescr predicate = new PredicateDescr();
+		predicate.setContent(pc.getText().subSequence(1,
 				pc.getText().length() - 1));
-		returnValue.setLocation(getLineLocation(pc), getColumnLocation(pc));
-		returnValue.setStartCharacter(getStartOffsetLocation(pc));
-		returnValue.setEndCharacter(getEndOffsetLocation(pc));
-		return returnValue;
+		predicate.setEndCharacter(getEndOffsetLocation(pc));
+		return predicate;
 	}
 
-	public BaseDescr createAccessorElement(DroolsTree id,
-			List<DroolsTree> squareChunk) {
-		BaseDescr element = new BaseDescr();
-		element.setLocation(getLineLocation(id), getColumnLocation(id));
-		element.setStartCharacter(getStartOffsetLocation(id));
-		element.setEndCharacter(getEndOffsetLocation(id));
-		StringBuilder sb = new StringBuilder();
-		sb.append(id.getText());
-		if (null != squareChunk && squareChunk.size() > 0) {
-			for (DroolsTree chunk : squareChunk) {
-				sb.append(chunk.getText());
+	/**
+	 * Method that setups descriptor with operator and negated information.
+	 * 
+	 * This method just setups EvaluatorBasedRestrictionDescr descriptors.
+	 * 
+	 * @param operator
+	 *            operator
+	 * @param not
+	 *            negated operator
+	 * @param descr
+	 *            descriptor
+	 * @return descriptor setted.
+	 * @see EvaluatorBasedRestrictionDescr
+	 */
+	public BaseDescr setupRestriction(DroolsTree operator, DroolsTree not,
+			BaseDescr descr) {
+		if (descr instanceof EvaluatorBasedRestrictionDescr) {
+			EvaluatorBasedRestrictionDescr evaluator = (EvaluatorBasedRestrictionDescr) descr;
+			evaluator.setEvaluator(operator.getText());
+			if (null == not) {
+				evaluator.setNegated(false);
+			} else {
+				evaluator.setNegated(true);
 			}
-			element.setEndCharacter(getEndOffsetLocation(squareChunk
-					.get(squareChunk.size() - 1)));
 		}
-		element.setText(sb.toString());
-		return element;
+		return descr;
 	}
 
-	public BaseDescr createAccessorPath(List<BaseDescr> aeList) {
-		StringBuilder sb = new StringBuilder();
-		sb.append(aeList.get(0).getText());
-		if (aeList.size() > 1) {
-			for (int i = 1; i < aeList.size(); i++) {
-				sb.append(".");
-				sb.append(aeList.get(i).getText());
-			}
+	/**
+	 * Method that setups descriptor with operator and negated information.
+	 * 
+	 * This method just setups EvaluatorBasedRestrictionDescr descriptors.
+	 * 
+	 * @param operator
+	 *            operator
+	 * @param not
+	 *            negated operator
+	 * @param descr
+	 *            descriptor
+	 * @param param
+	 *            parameter
+	 * @return descriptor setted.
+	 * @see EvaluatorBasedRestrictionDescr
+	 */
+	public BaseDescr setupRestriction(DroolsTree operator, DroolsTree not,
+			BaseDescr descr, DroolsTree param) {
+		BaseDescr retDescr = setupRestriction(operator, not, descr);
+		if (null != param && descr instanceof EvaluatorBasedRestrictionDescr) {
+			EvaluatorBasedRestrictionDescr evaluator = (EvaluatorBasedRestrictionDescr) descr;
+			evaluator.setParameterText(param.getText().substring(1,
+					param.getText().length() - 1));
 		}
+		return retDescr;
+	}
 
-		EvaluatorBasedRestrictionDescr evaluator;
-		String name = sb.toString();
-		if (name.indexOf('.') > -1 || name.indexOf('[') > -1) {
-			evaluator = new QualifiedIdentifierRestrictionDescr();
+	/**
+	 * Factory method that creates a RestrictionConnectiveDescr.
+	 * 
+	 * RestrictionConnectiveDescr is just a syntax suggar to implement severals
+	 * "ORs" or "ANDs".
+	 * 
+	 * @param not
+	 *            negated operator
+	 * @param exprList
+	 *            binded expression descriptor list
+	 * @return RestrictionConnectiveDescr filled.
+	 * @see RestrictionConnectiveDescr
+	 */
+	public RestrictionConnectiveDescr createRestrictionConnective(
+			DroolsTree not, List<BaseDescr> exprList) {
+
+		RestrictionConnectiveDescr group;
+		String op = null;
+
+		if (null == not) {
+			op = "==";
+			group = new RestrictionConnectiveDescr(
+					RestrictionConnectiveDescr.OR);
 		} else {
-			evaluator = new VariableRestrictionDescr();
+			op = "!=";
+			group = new RestrictionConnectiveDescr(
+					RestrictionConnectiveDescr.AND);
 		}
-		evaluator.setText(name);
 
-		return evaluator;
-	}
-
-	public FieldConstraintDescr createFieldConstraint(List<BaseDescr> aeList) {
-		StringBuilder sb = new StringBuilder();
-		sb.append(aeList.get(0).getText());
-		if (aeList.size() > 1) {
-			for (int i = 1; i < aeList.size(); i++) {
-				sb.append(".");
-				sb.append(aeList.get(i).getText());
+		for (BaseDescr baseDescr : exprList) {
+			if (baseDescr instanceof EvaluatorBasedRestrictionDescr) {
+				EvaluatorBasedRestrictionDescr evaluator = (EvaluatorBasedRestrictionDescr) baseDescr;
+				evaluator.setEvaluator(op);
+				evaluator.setNegated(false);
+				group.addRestriction(evaluator);
 			}
 		}
-		FieldConstraintDescr fieldConstraint = new FieldConstraintDescr(sb
-				.toString());
-		fieldConstraint.setLocation(aeList.get(0).getLine(), aeList.get(0)
-				.getColumn());
-		fieldConstraint.setStartCharacter(aeList.get(0).getStartCharacter());
-		fieldConstraint.setEndCharacter(aeList.get(aeList.size() - 1)
-				.getEndCharacter());
 
-		return fieldConstraint;
+		return group;
 	}
 
-	public BaseDescr createFieldBinding(DroolsTree label, BaseDescr descr) {
-		FieldBindingDescr fieldBiding = new FieldBindingDescr();
-		fieldBiding.setLocation(getLineLocation(label),
-				getColumnLocation(label));
-		fieldBiding.setStartCharacter(getStartOffsetLocation(label));
-		FieldConstraintDescr fieldConstraint = (FieldConstraintDescr) descr;
-		fieldBiding.setIdentifier(label.getText());
-		fieldBiding.setFieldName(fieldConstraint.getFieldName());
-		fieldBiding.setFieldConstraint(fieldConstraint);
-		return fieldBiding;
-	}
-
+	/**
+	 * Factory method that creates a RestrictionConnectiveDescr of type OR or an
+	 * OrDescr (based on left paramater).
+	 * 
+	 * If left parameter is a kind of RestrictionDescr (except for
+	 * PredicateDescr), this method creates a RestrictionConnectiveDescr, if not
+	 * creates an OrDescr.
+	 * 
+	 * @param left
+	 *            left descriptor
+	 * @param right
+	 *            right descriptor
+	 * @return RestrictionConnectiveDescr or OrDescr filled.
+	 * @see RestrictionConnectiveDescr
+	 * @see OrDescr
+	 */
 	public BaseDescr createOrRestrictionConnective(BaseDescr left,
-			BaseDescr right) {		
+			BaseDescr right) {
 		BaseDescr or = null;
-		if (left instanceof RestrictionDescr && !(left instanceof PredicateDescr)) {
+		if (left instanceof RestrictionDescr
+				&& !(left instanceof PredicateDescr)) {
 			RestrictionConnectiveDescr restOr = new RestrictionConnectiveDescr(
 					RestrictionConnectiveDescr.OR);
 			restOr.addOrMerge((RestrictionDescr) left);
@@ -664,10 +1088,27 @@
 
 	}
 
+	/**
+	 * Factory method that creates a RestrictionConnectiveDescr of type AND or
+	 * an AndDescr (based on left paramater).
+	 * 
+	 * If left parameter is a kind of RestrictionDescr (except for
+	 * PredicateDescr), this method creates a RestrictionConnectiveDescr, if not
+	 * creates an AndDescr.
+	 * 
+	 * @param left
+	 *            left descriptor
+	 * @param right
+	 *            right descriptor
+	 * @return RestrictionConnectiveDescr or AndDescr filled.
+	 * @see RestrictionConnectiveDescr
+	 * @see AndDescr
+	 */
 	public BaseDescr createAndRestrictionConnective(BaseDescr left,
 			BaseDescr right) {
 		BaseDescr and = null;
-		if (left instanceof RestrictionDescr  && !(left instanceof PredicateDescr)) {
+		if (left instanceof RestrictionDescr
+				&& !(left instanceof PredicateDescr)) {
 			RestrictionConnectiveDescr restAnd = new RestrictionConnectiveDescr(
 					RestrictionConnectiveDescr.AND);
 			restAnd.addOrMerge((RestrictionDescr) left);
@@ -683,94 +1124,209 @@
 		return and;
 	}
 
-	public BaseDescr createRestrictionConnective(DroolsTree not,
-			List<BaseDescr> exprList) {
+	/**
+	 * Factory method that creates an EvaluatorBasedRestrictionDescr.
+	 * 
+	 * @param aeList
+	 *            accessor element list
+	 * @return EvaluatorBasedRestrictionDescr filled.
+	 * @see EvaluatorBasedRestrictionDescr
+	 */
+	public BaseDescr createAccessorPath(List<BaseDescr> aeList) {
+		StringBuilder sb = new StringBuilder();
+		sb.append(aeList.get(0).getText());
+		if (aeList.size() > 1) {
+			for (int i = 1; i < aeList.size(); i++) {
+				sb.append(".");
+				sb.append(aeList.get(i).getText());
+			}
+		}
 
-		RestrictionConnectiveDescr group;
-		String op = null;
-
-		if (null == not) {
-			op = "==";
-			group = new RestrictionConnectiveDescr(
-					RestrictionConnectiveDescr.OR);
+		EvaluatorBasedRestrictionDescr evaluator;
+		String name = sb.toString();
+		if (name.indexOf('.') > -1 || name.indexOf('[') > -1) {
+			evaluator = new QualifiedIdentifierRestrictionDescr();
 		} else {
-			op = "!=";
-			group = new RestrictionConnectiveDescr(
-					RestrictionConnectiveDescr.AND);
+			evaluator = new VariableRestrictionDescr();
 		}
+		evaluator.setText(name);
 
-		for (BaseDescr baseDescr : exprList) {
-			if (baseDescr instanceof EvaluatorBasedRestrictionDescr) {
-				EvaluatorBasedRestrictionDescr evaluator = (EvaluatorBasedRestrictionDescr) baseDescr;
-				evaluator.setEvaluator(op);
-				evaluator.setNegated(false);
-				group.addRestriction(evaluator);
-			}
-		}
+		return evaluator;
+	}
 
-		return group;
+	/**
+	 * Factory method that creates a LiteralRestrictionDescr of String type,
+	 * also remove the quotes.
+	 * 
+	 * @param s
+	 *            string data
+	 * @return LiteralRestrictionDescr filled
+	 * @see LiteralRestrictionDescr
+	 */
+	public LiteralRestrictionDescr createStringLiteralRestriction(DroolsTree s) {
+		LiteralRestrictionDescr stringLit = new LiteralRestrictionDescr();
+		stringLit.setType(LiteralRestrictionDescr.TYPE_STRING);
+		stringLit.setText(s.getText().substring(1, s.getText().length() - 1));
+		return stringLit;
 	}
 
-	public BaseDescr setupRestriction(DroolsTree operator, DroolsTree not,
-			BaseDescr descr, DroolsTree param) {
-		BaseDescr retDescr = setupRestriction(operator, not, descr);
-		if (null != param && descr instanceof EvaluatorBasedRestrictionDescr) {
-			EvaluatorBasedRestrictionDescr evaluator = (EvaluatorBasedRestrictionDescr) descr;
-			evaluator.setParameterText(param.getText().substring(1,
-					param.getText().length() - 1));
-		}
-		return retDescr;
+	/**
+	 * Factory method that creates a LiteralRestrictionDescr of Number type.
+	 * 
+	 * @param i
+	 *            integer data
+	 * @return LiteralRestrictionDescr filled
+	 * @see LiteralRestrictionDescr
+	 */
+	public LiteralRestrictionDescr createIntLiteralRestriction(DroolsTree i) {
+		LiteralRestrictionDescr intLit = new LiteralRestrictionDescr();
+		intLit.setType(LiteralRestrictionDescr.TYPE_NUMBER);
+		intLit.setText(i.getText());
+		return intLit;
 	}
 
-	public BaseDescr setupRestriction(DroolsTree operator, DroolsTree not,
-			BaseDescr descr) {
-		if (descr instanceof EvaluatorBasedRestrictionDescr) {
-			EvaluatorBasedRestrictionDescr evaluator = (EvaluatorBasedRestrictionDescr) descr;
-			evaluator.setEvaluator(operator.getText());
-			if (null == not) {
-				evaluator.setNegated(false);
-			} else {
-				evaluator.setNegated(true);
-			}
-		}
-		return descr;
+	/**
+	 * Factory method that creates a LiteralRestrictionDescr of Number type.
+	 * 
+	 * @param f
+	 *            float data
+	 * @return LiteralRestrictionDescr filled
+	 * @see LiteralRestrictionDescr
+	 */
+	public LiteralRestrictionDescr createFloatLiteralRestriction(DroolsTree f) {
+		LiteralRestrictionDescr floatLit = new LiteralRestrictionDescr();
+		floatLit.setType(LiteralRestrictionDescr.TYPE_NUMBER);
+		floatLit.setText(f.getText());
+		return floatLit;
 	}
 
-	public BaseDescr createPredicate(DroolsTree pc) {
-		PredicateDescr predicate = new PredicateDescr();
-		predicate.setContent(pc.getText().subSequence(1,
+	/**
+	 * Factory method that creates a LiteralRestrictionDescr of Boolean type.
+	 * 
+	 * @param b
+	 *            boolean data
+	 * @return LiteralRestrictionDescr filled
+	 * @see LiteralRestrictionDescr
+	 */
+	public LiteralRestrictionDescr createBoolLiteralRestriction(DroolsTree b) {
+		LiteralRestrictionDescr boolLit = new LiteralRestrictionDescr();
+		boolLit.setType(LiteralRestrictionDescr.TYPE_BOOLEAN);
+		boolLit.setText(b.getText());
+		return boolLit;
+	}
+
+	/**
+	 * Factory method that creates a LiteralRestrictionDescr of Null type.
+	 * 
+	 * @param n
+	 *            null data
+	 * @return LiteralRestrictionDescr filled
+	 * @see LiteralRestrictionDescr
+	 */
+	public LiteralRestrictionDescr createNullLiteralRestriction(DroolsTree n) {
+		LiteralRestrictionDescr nullLit = new LiteralRestrictionDescr();
+		nullLit.setType(LiteralRestrictionDescr.TYPE_NULL);
+		nullLit.setText(null);
+		return nullLit;
+	}
+
+	/**
+	 * Factory method that creates a ReturnValueRestrictionDescr.
+	 * 
+	 * @param pc
+	 *            chunk data
+	 * @return ReturnValueRestrictionDescr filled
+	 * @see ReturnValueRestrictionDescr
+	 */
+	public ReturnValueRestrictionDescr createReturnValue(DroolsTree pc) {
+		ReturnValueRestrictionDescr returnValue = new ReturnValueRestrictionDescr();
+		returnValue.setContent(pc.getText().substring(1,
 				pc.getText().length() - 1));
-		predicate.setEndCharacter(getEndOffsetLocation(pc));
-		return predicate;
+		returnValue.setLocation(getLineLocation(pc), getColumnLocation(pc));
+		returnValue.setStartCharacter(getStartOffsetLocation(pc));
+		returnValue.setEndCharacter(getEndOffsetLocation(pc));
+		return returnValue;
 	}
 
-	public BaseDescr setupFieldConstraint(FieldConstraintDescr field,
-			BaseDescr descr) {
-		if (null != descr && descr instanceof RestrictionDescr) {
-			field.getRestriction().addOrMerge((RestrictionDescr) descr);
+	/**
+	 * Factory method that creates a FieldConstraintDescr.
+	 * 
+	 * @param aeList
+	 *            accessor element descriptor list
+	 * @return FieldConstraintDescr filled.
+	 */
+	public FieldConstraintDescr createFieldConstraint(List<BaseDescr> aeList) {
+		StringBuilder sb = new StringBuilder();
+		sb.append(aeList.get(0).getText());
+		if (aeList.size() > 1) {
+			for (int i = 1; i < aeList.size(); i++) {
+				sb.append(".");
+				sb.append(aeList.get(i).getText());
+			}
 		}
-		return field;
+		FieldConstraintDescr fieldConstraint = new FieldConstraintDescr(sb
+				.toString());
+		fieldConstraint.setLocation(aeList.get(0).getLine(), aeList.get(0)
+				.getColumn());
+		fieldConstraint.setStartCharacter(aeList.get(0).getStartCharacter());
+		fieldConstraint.setEndCharacter(aeList.get(aeList.size() - 1)
+				.getEndCharacter());
+
+		return fieldConstraint;
 	}
 
-	private String getCleanId(DroolsTree id) {
-		String cleanedId = id.getText();
-		if (cleanedId.startsWith("\"")) {
-			cleanedId = cleanedId.substring(1, cleanedId.length() - 1);
+	/**
+	 * Factory method that creates an accessor element descriptor.
+	 * 
+	 * @param id
+	 *            accessor identifier
+	 * @param squareChunk
+	 *            chunk data
+	 * @return BaseDescr accessor descriptor filled.
+	 */
+	public BaseDescr createAccessorElement(DroolsTree id,
+			List<DroolsTree> squareChunk) {
+		BaseDescr element = new BaseDescr();
+		element.setLocation(getLineLocation(id), getColumnLocation(id));
+		element.setStartCharacter(getStartOffsetLocation(id));
+		element.setEndCharacter(getEndOffsetLocation(id));
+		StringBuilder sb = new StringBuilder();
+		sb.append(id.getText());
+		if (null != squareChunk && squareChunk.size() > 0) {
+			for (DroolsTree chunk : squareChunk) {
+				sb.append(chunk.getText());
+			}
+			element.setEndCharacter(getEndOffsetLocation(squareChunk
+					.get(squareChunk.size() - 1)));
 		}
-		return cleanedId;
+		element.setText(sb.toString());
+		return element;
 	}
 
+	/**
+	 * A factory method that returns a data type descriptor.
+	 * 
+	 * @param idList
+	 *            identifier list
+	 * @param rightList
+	 *            right square list, may be null
+	 * @return BaseDescr data type filled.
+	 */
 	public BaseDescr createDataType(List<DroolsTree> idList,
 			List<DroolsTree> rightList) {
 		return createGenericBaseDescr(idList, rightList);
 	}
 
-	public BaseDescr createArgument(DroolsTree id, List<DroolsTree> rightList) {
-		List<DroolsTree> idList = new ArrayList<DroolsTree>(1);
-		idList.add(id);
-		return createGenericBaseDescr(idList, rightList);
-	}
-
+	/**
+	 * Helper method that creates a full identifier descriptor with correct char
+	 * offset.
+	 * 
+	 * @param idList
+	 *            identifiers
+	 * @param rightList
+	 *            right square list, may be null
+	 * @return BaseDescr filled.
+	 */
 	private BaseDescr createGenericBaseDescr(List<DroolsTree> idList,
 			List<DroolsTree> rightList) {
 		int endLine = getLineLocation(idList.get(idList.size() - 1));
@@ -800,6 +1356,13 @@
 		return baseDescr;
 	}
 
+	/**
+	 * Helper method returns a dotted identifier based on identifier list.
+	 * 
+	 * @param idList
+	 *            identifiers
+	 * @return dotted identifier
+	 */
 	private String createDotedIdFromList(List<DroolsTree> idList) {
 		StringBuilder sb = new StringBuilder();
 
@@ -814,19 +1377,63 @@
 		return sb.toString();
 	}
 
+	/**
+	 * Helper method that returns a tree text without initial and final quotes
+	 * (if it starts with).
+	 * 
+	 * @param tree
+	 *            tree
+	 * @return text without quotes
+	 */
+	private String getCleanId(DroolsTree id) {
+		String cleanedId = id.getText();
+		if (cleanedId.startsWith("\"") || cleanedId.startsWith("'")) {
+			cleanedId = cleanedId.substring(1, cleanedId.length() - 1);
+		}
+		return cleanedId;
+	}
+
+	/**
+	 * Helper method that returns line location
+	 * 
+	 * @param tree
+	 *            tree
+	 * @return line location
+	 */
 	private int getLineLocation(DroolsTree tree) {
 		return tree.getLine();
 	}
 
+	/**
+	 * Helper method that returns column location
+	 * 
+	 * @param tree
+	 *            tree
+	 * @return column location
+	 */
 	private int getColumnLocation(DroolsTree tree) {
 		return tree.getCharPositionInLine();
 	}
 
+	/**
+	 * Helper method that returns start char offset
+	 * 
+	 * @param tree
+	 *            tree
+	 * @return start char offset
+	 */
+	private int getStartOffsetLocation(DroolsTree tree) {
+		return tree.getStartCharOffset();
+	}
+
+	/**
+	 * Helper method that returns end char offset
+	 * 
+	 * @param tree
+	 *            tree
+	 * @return end char offset
+	 */
 	private int getEndOffsetLocation(DroolsTree tree) {
 		return tree.getEndCharOffset();
 	}
-
-	private int getStartOffsetLocation(DroolsTree tree) {
-		return tree.getStartCharOffset();
-	}
 }
\ No newline at end of file




More information about the jboss-svn-commits mailing list