Browse Source

客户端访问服务端请求知识包内容时不再尝试获取登录用户信息

jacky6024 8 years ago
parent
commit
85c5abb89c
84 changed files with 194 additions and 185 deletions
  1. 1 1
      urule-console/src/main/java/com/bstek/urule/console/DefaultKnowledgePackageService.java
  2. 1 1
      urule-console/src/main/java/com/bstek/urule/console/repository/RepositoryResourceProvider.java
  3. 1 1
      urule-console/src/main/java/com/bstek/urule/console/servlet/common/CommonServletHandler.java
  4. 1 1
      urule-console/src/main/java/com/bstek/urule/console/servlet/flow/RuleFlowDesignerServletHandler.java
  5. 1 1
      urule-console/src/main/java/com/bstek/urule/console/servlet/xml/XmlServletHandler.java
  6. 5 2
      urule-core/src/main/java/com/bstek/urule/builder/KnowledgeBuilder.java
  7. 6 3
      urule-core/src/main/java/com/bstek/urule/builder/ResourceLibraryBuilder.java
  8. 4 1
      urule-core/src/main/java/com/bstek/urule/builder/RulesRebuilder.java
  9. 2 2
      urule-core/src/main/java/com/bstek/urule/builder/resource/ActionLibraryResourceBuilder.java
  10. 2 2
      urule-core/src/main/java/com/bstek/urule/builder/resource/ConstantLibraryResourceBuilder.java
  11. 2 2
      urule-core/src/main/java/com/bstek/urule/builder/resource/DecisionTableResourceBuilder.java
  12. 2 2
      urule-core/src/main/java/com/bstek/urule/builder/resource/DecisionTreeResourceBuilder.java
  13. 2 2
      urule-core/src/main/java/com/bstek/urule/builder/resource/FlowResourceBuilder.java
  14. 2 2
      urule-core/src/main/java/com/bstek/urule/builder/resource/ParameterLibraryResourceBuilder.java
  15. 1 1
      urule-core/src/main/java/com/bstek/urule/builder/resource/ResourceBuilder.java
  16. 2 2
      urule-core/src/main/java/com/bstek/urule/builder/resource/RuleSetResourceBuilder.java
  17. 2 2
      urule-core/src/main/java/com/bstek/urule/builder/resource/ScorecardResourceBuilder.java
  18. 2 2
      urule-core/src/main/java/com/bstek/urule/builder/resource/ScriptDecisionTableResourceBuilder.java
  19. 2 2
      urule-core/src/main/java/com/bstek/urule/builder/resource/VariableLibraryResourceBuilder.java
  20. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/AbstractParser.java
  21. 4 4
      urule-core/src/main/java/com/bstek/urule/parse/AbstractRuleParser.java
  22. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/ActionLibraryParser.java
  23. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/CommonFunctionActionParser.java
  24. 3 3
      urule-core/src/main/java/com/bstek/urule/parse/ComplexArithmeticParser.java
  25. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/ConsolePrintActionParser.java
  26. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/ConstantLibraryParser.java
  27. 3 3
      urule-core/src/main/java/com/bstek/urule/parse/CriteriaParser.java
  28. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/CriterionParser.java
  29. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/ExecuteMethodActionParser.java
  30. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/JunctionParser.java
  31. 11 11
      urule-core/src/main/java/com/bstek/urule/parse/LeftParser.java
  32. 4 4
      urule-core/src/main/java/com/bstek/urule/parse/LhsParser.java
  33. 5 5
      urule-core/src/main/java/com/bstek/urule/parse/LoopRuleParser.java
  34. 4 4
      urule-core/src/main/java/com/bstek/urule/parse/NamedJunctionParser.java
  35. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/OtherParser.java
  36. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/ParameterLibraryParser.java
  37. 3 3
      urule-core/src/main/java/com/bstek/urule/parse/ParenParser.java
  38. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/Parser.java
  39. 4 4
      urule-core/src/main/java/com/bstek/urule/parse/RhsParser.java
  40. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/RuleParser.java
  41. 4 4
      urule-core/src/main/java/com/bstek/urule/parse/RuleSetParser.java
  42. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/SimpleArithmeticParser.java
  43. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/SpringBeanParser.java
  44. 4 4
      urule-core/src/main/java/com/bstek/urule/parse/ValueParser.java
  45. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/VariableAssignActionParser.java
  46. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/VariableCategoryParser.java
  47. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/VariableLibraryParser.java
  48. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/VariableParser.java
  49. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/decisiontree/ActionTreeNodeParser.java
  50. 5 5
      urule-core/src/main/java/com/bstek/urule/parse/decisiontree/ConditionTreeNodeParser.java
  51. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/decisiontree/DecisionTreeParser.java
  52. 3 3
      urule-core/src/main/java/com/bstek/urule/parse/decisiontree/VariableTreeNodeParser.java
  53. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/deserializer/ActionLibraryDeserializer.java
  54. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/deserializer/ConstantLibraryDeserializer.java
  55. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/deserializer/DecisionTableDeserializer.java
  56. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/deserializer/DecisionTreeDeserializer.java
  57. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/deserializer/Deserializer.java
  58. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/deserializer/FlowDeserializer.java
  59. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/deserializer/ParameterLibraryDeserializer.java
  60. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/deserializer/RuleSetDeserializer.java
  61. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/deserializer/ScorecardDeserializer.java
  62. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/deserializer/ScriptDecisionTableDeserializer.java
  63. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/deserializer/VariableLibraryDeserializer.java
  64. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/flow/ActionNodeParser.java
  65. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/flow/DecisionNodeParser.java
  66. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/flow/EndNodeParser.java
  67. 2 2
      urule-core/src/main/java/com/bstek/urule/parse/flow/FlowDefinitionParser.java
  68. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/flow/ForkNodeParser.java
  69. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/flow/JoinNodeParser.java
  70. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/flow/RuleNodeParser.java
  71. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/flow/RulePackageNodeParser.java
  72. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/flow/ScriptNodeParser.java
  73. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/flow/StartNodeParser.java
  74. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/scorecard/AttributeRowParser.java
  75. 3 3
      urule-core/src/main/java/com/bstek/urule/parse/scorecard/CardCellParser.java
  76. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/scorecard/CustomColParser.java
  77. 4 4
      urule-core/src/main/java/com/bstek/urule/parse/scorecard/ScorecardParser.java
  78. 4 4
      urule-core/src/main/java/com/bstek/urule/parse/table/CellParser.java
  79. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/table/ColumnParser.java
  80. 4 4
      urule-core/src/main/java/com/bstek/urule/parse/table/DecisionTableParser.java
  81. 5 5
      urule-core/src/main/java/com/bstek/urule/parse/table/JointParser.java
  82. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/table/RowParser.java
  83. 1 1
      urule-core/src/main/java/com/bstek/urule/parse/table/ScriptCellParser.java
  84. 4 4
      urule-core/src/main/java/com/bstek/urule/parse/table/ScriptDecisionTableParser.java

+ 1 - 1
urule-console/src/main/java/com/bstek/urule/console/DefaultKnowledgePackageService.java

@@ -64,7 +64,7 @@ public class DefaultKnowledgePackageService implements KnowledgePackageService{
 			for(ResourceItem item:list){
 				resourceBase.addResource(item.getPath(),item.getVersion(),withPermission);
 			}
-			KnowledgeBase knowledgeBase=knowledgeBuilder.buildKnowledgeBase(resourceBase);
+			KnowledgeBase knowledgeBase=knowledgeBuilder.buildKnowledgeBase(resourceBase,withPermission);
 			KnowledgePackage knowledgePackage=knowledgeBase.getKnowledgePackage();
 			return knowledgePackage;
 		}catch(Exception ex){

+ 1 - 1
urule-console/src/main/java/com/bstek/urule/console/repository/RepositoryResourceProvider.java

@@ -35,7 +35,7 @@ public class RepositoryResourceProvider implements ResourceProvider {
 	
 	@Override
 	public Resource provide(String path, String version) {
-		return null;
+		return provide(path,version,true);
 	}
 	@Override
 	public Resource provide(String path,String version,boolean withPermiossion) {

+ 1 - 1
urule-console/src/main/java/com/bstek/urule/console/servlet/common/CommonServletHandler.java

@@ -267,7 +267,7 @@ public class CommonServletHandler extends RenderPageServletHandler{
 					Element element=parseXml(inputStream);
 					for(Deserializer<?> des:deserializers){
 						if(des.support(element)){
-							result.add(des.deserialize(element));
+							result.add(des.deserialize(element,true));
 							if(des instanceof ActionLibraryDeserializer){
 								isaction=true;
 							}

+ 1 - 1
urule-console/src/main/java/com/bstek/urule/console/servlet/flow/RuleFlowDesignerServletHandler.java

@@ -80,7 +80,7 @@ public class RuleFlowDesignerServletHandler extends RenderPageServletHandler {
 			inputStream=repositoryService.readFile(file,version);
 		}
 		Element root=parseXml(inputStream);
-		FlowDefinition fd = flowDeserializer.deserialize(root);
+		FlowDefinition fd = flowDeserializer.deserialize(root,true);
 		inputStream.close();
 		writeObjectToJson(resp, new FlowDefinitionWrapper(fd));
 	}

+ 1 - 1
urule-console/src/main/java/com/bstek/urule/console/servlet/xml/XmlServletHandler.java

@@ -101,7 +101,7 @@ public class XmlServletHandler extends WriteJsonServletHandler implements Applic
 						Element element=parseXml(inputStream);
 						for(Deserializer<?> des:deserializers){
 							if(des.support(element)){
-								result.add(des.deserialize(element));
+								result.add(des.deserialize(element,true));
 								if(des instanceof ActionLibraryDeserializer){
 									isaction=true;
 								}

+ 5 - 2
urule-core/src/main/java/com/bstek/urule/builder/KnowledgeBuilder.java

@@ -59,6 +59,9 @@ public class KnowledgeBuilder extends AbstractBuilder{
 	private DSLRuleSetBuilder dslRuleSetBuilder;
 	public static final String BEAN_ID="urule.knowledgeBuilder";
 	public KnowledgeBase buildKnowledgeBase(ResourceBase resourceBase) throws IOException{
+		return buildKnowledgeBase(resourceBase,true);
+	}
+	public KnowledgeBase buildKnowledgeBase(ResourceBase resourceBase,boolean withPermission) throws IOException{
 		KnowledgePackageService knowledgePackageService=(KnowledgePackageService)applicationContext.getBean(KnowledgePackageService.BEAN_ID);
 		List<Rule> rules=new ArrayList<Rule>();
 		Map<String,Library> libMap=new HashMap<String,Library>();
@@ -77,7 +80,7 @@ public class KnowledgeBuilder extends AbstractBuilder{
 				if(!builder.support(root)){
 					continue;
 				}
-				Object object=builder.build(root);
+				Object object=builder.build(root,withPermission);
 				ResourceType type=builder.getType();
 				if(type.equals(ResourceType.RuleSet)){
 					RuleSet ruleSet=(RuleSet)object;
@@ -125,7 +128,7 @@ public class KnowledgeBuilder extends AbstractBuilder{
 				break;
 			}
 		}
-		ResourceLibrary resourceLibrary=resourceLibraryBuilder.buildResourceLibrary(libMap.values());
+		ResourceLibrary resourceLibrary=resourceLibraryBuilder.buildResourceLibrary(libMap.values(),withPermission);
 		buildLoopRules(rules, resourceLibrary);
 		Rete rete=reteBuilder.buildRete(rules, resourceLibrary);
 		return new KnowledgeBase(rete,flowMap,retriveNoLhsRules(rules));

+ 6 - 3
urule-core/src/main/java/com/bstek/urule/builder/ResourceLibraryBuilder.java

@@ -41,8 +41,11 @@ import com.bstek.urule.runtime.BuiltInActionLibraryBuilder;
  */
 public class ResourceLibraryBuilder extends AbstractBuilder{
 	private BuiltInActionLibraryBuilder builtInActionLibraryBuilder;
-	@SuppressWarnings("unchecked")
 	public ResourceLibrary buildResourceLibrary(Collection<Library> libraries){
+		return buildResourceLibrary(libraries,true);
+	}
+	@SuppressWarnings("unchecked")
+	public ResourceLibrary buildResourceLibrary(Collection<Library> libraries,boolean withPermission){
 		if(libraries==null){
 			libraries=Collections.EMPTY_LIST;
 		}
@@ -52,7 +55,7 @@ public class ResourceLibraryBuilder extends AbstractBuilder{
 		List<VariableCategory> parameterVariableCategories=new ArrayList<VariableCategory>();
 		ResourceBase resourceBase=newResourceBase();
 		for(Library lib:libraries){
-			resourceBase.addResource(lib.getPath(),lib.getVersion());
+			resourceBase.addResource(lib.getPath(),lib.getVersion(),withPermission);
 		}
 		for(Resource resource:resourceBase.getResources()){
 			String content=resource.getContent();
@@ -61,7 +64,7 @@ public class ResourceLibraryBuilder extends AbstractBuilder{
 				if(!builder.support(root)){
 					continue;
 				}
-				Object object=builder.build(root);
+				Object object=builder.build(root,withPermission);
 				ResourceType type=builder.getType();
 				if(type.equals(ResourceType.ActionLibrary)){
 					ActionLibrary al=(ActionLibrary)object;

+ 4 - 1
urule-core/src/main/java/com/bstek/urule/builder/RulesRebuilder.java

@@ -82,13 +82,16 @@ import com.bstek.urule.model.rule.loop.LoopTarget;
 public class RulesRebuilder {
 	private ResourceLibraryBuilder resourceLibraryBuilder;
 	public void rebuildRules(List<Library> libraries, List<Rule> rules) {
+		rebuildRules(libraries,rules,true);
+	}
+	public void rebuildRules(List<Library> libraries, List<Rule> rules,boolean withPermission) {
 		if(libraries==null){
 			return;
 		}
 		if(rules==null){
 			return;
 		}
-		ResourceLibrary resLibraries=resourceLibraryBuilder.buildResourceLibrary(libraries);
+		ResourceLibrary resLibraries=resourceLibraryBuilder.buildResourceLibrary(libraries,withPermission);
 		for(Rule rule:rules){
 			Map<String,String> namedMap=new HashMap<String,String>();
 			if(rule.getLhs()!=null){

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/builder/resource/ActionLibraryResourceBuilder.java

@@ -27,8 +27,8 @@ import com.bstek.urule.parse.deserializer.ActionLibraryDeserializer;
  */
 public class ActionLibraryResourceBuilder implements ResourceBuilder<ActionLibrary> {
 	private ActionLibraryDeserializer actionLibraryDeserializer;
-	public ActionLibrary build(Element root) {
-		return actionLibraryDeserializer.deserialize(root);
+	public ActionLibrary build(Element root,boolean withPermission) {
+		return actionLibraryDeserializer.deserialize(root,withPermission);
 	}
 
 	public void setActionLibraryDeserializer(ActionLibraryDeserializer actionLibraryDeserializer) {

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/builder/resource/ConstantLibraryResourceBuilder.java

@@ -26,8 +26,8 @@ import com.bstek.urule.parse.deserializer.ConstantLibraryDeserializer;
  */
 public class ConstantLibraryResourceBuilder implements ResourceBuilder<ConstantLibrary> {
 	private ConstantLibraryDeserializer constantLibraryDeserializer;
-	public ConstantLibrary build(Element root) {
-		return constantLibraryDeserializer.deserialize(root);
+	public ConstantLibrary build(Element root,boolean withPermission) {
+		return constantLibraryDeserializer.deserialize(root,withPermission);
 	}
 	public boolean support(Element root) {
 		return constantLibraryDeserializer.support(root);

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/builder/resource/DecisionTableResourceBuilder.java

@@ -26,8 +26,8 @@ import com.bstek.urule.parse.deserializer.DecisionTableDeserializer;
  */
 public class DecisionTableResourceBuilder implements ResourceBuilder<DecisionTable> {
 	private DecisionTableDeserializer decisionTableDeserializer;
-	public DecisionTable build(Element root) {
-		return decisionTableDeserializer.deserialize(root);
+	public DecisionTable build(Element root,boolean withPermission) {
+		return decisionTableDeserializer.deserialize(root,withPermission);
 	}
 	public ResourceType getType() {
 		return ResourceType.DecisionTable;

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/builder/resource/DecisionTreeResourceBuilder.java

@@ -27,8 +27,8 @@ import com.bstek.urule.parse.deserializer.DecisionTreeDeserializer;
 public class DecisionTreeResourceBuilder implements ResourceBuilder<DecisionTree> {
 	private DecisionTreeDeserializer decisionTreeDeserializer;
 	@Override
-	public DecisionTree build(Element root) {
-		return decisionTreeDeserializer.deserialize(root);
+	public DecisionTree build(Element root,boolean withPermission) {
+		return decisionTreeDeserializer.deserialize(root,withPermission);
 	}
 	@Override
 	public ResourceType getType() {

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/builder/resource/FlowResourceBuilder.java

@@ -26,8 +26,8 @@ import com.bstek.urule.parse.deserializer.FlowDeserializer;
  */
 public class FlowResourceBuilder implements ResourceBuilder<FlowDefinition> {
 	private FlowDeserializer flowDeserializer;
-	public FlowDefinition build(Element root) {
-		return flowDeserializer.deserialize(root);
+	public FlowDefinition build(Element root,boolean withPermission) {
+		return flowDeserializer.deserialize(root,withPermission);
 	}
 	public ResourceType getType() {
 		return ResourceType.Flow;

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/builder/resource/ParameterLibraryResourceBuilder.java

@@ -30,12 +30,12 @@ import com.bstek.urule.parse.deserializer.ParameterLibraryDeserializer;
 public class ParameterLibraryResourceBuilder implements ResourceBuilder<VariableCategory> {
 	private ParameterLibraryDeserializer parameterLibraryDeserializer;
 	@Override
-	public VariableCategory build(Element root) {
+	public VariableCategory build(Element root,boolean withPermission) {
 		VariableCategory category=new VariableCategory();
 		category.setName(VariableCategory.PARAM_CATEGORY);
 		category.setClazz(HashMap.class.getName());
 		category.setType(CategoryType.Clazz);
-		category.setVariables(parameterLibraryDeserializer.deserialize(root));
+		category.setVariables(parameterLibraryDeserializer.deserialize(root,withPermission));
 		return category;
 	}
 	@Override

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/builder/resource/ResourceBuilder.java

@@ -23,7 +23,7 @@ import org.dom4j.Element;
  * @since 2014年12月22日
  */
 public interface ResourceBuilder<T>{
-	T build(Element root);
+	T build(Element root,boolean withPermission);
 	boolean support(Element root);
 	ResourceType getType();
 }

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/builder/resource/RuleSetResourceBuilder.java

@@ -26,8 +26,8 @@ import com.bstek.urule.parse.deserializer.RuleSetDeserializer;
  */
 public class RuleSetResourceBuilder implements ResourceBuilder<RuleSet> {
 	private RuleSetDeserializer ruleSetDeserializer;
-	public RuleSet build(Element root) {
-		return ruleSetDeserializer.deserialize(root);
+	public RuleSet build(Element root,boolean withPermission) {
+		return ruleSetDeserializer.deserialize(root,withPermission);
 	}
 	public boolean support(Element root) {
 		return ruleSetDeserializer.support(root);

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/builder/resource/ScorecardResourceBuilder.java

@@ -58,8 +58,8 @@ public class ScorecardResourceBuilder implements ResourceBuilder<ScoreRule> {
 	private ScorecardDeserializer scorecardDeserializer;
 	private RulesRebuilder rulesRebuilder;
 	@Override
-	public ScoreRule build(Element root) {
-		ScorecardDefinition scorecard = scorecardDeserializer.deserialize(root);
+	public ScoreRule build(Element root,boolean withPermission) {
+		ScorecardDefinition scorecard = scorecardDeserializer.deserialize(root,withPermission);
 		ScoreRule scoreRule=new ScoreRule();
 		scoreRule.setName(scorecard.getName());
 		scoreRule.setEffectiveDate(scorecard.getEffectiveDate());

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/builder/resource/ScriptDecisionTableResourceBuilder.java

@@ -26,8 +26,8 @@ import com.bstek.urule.parse.deserializer.ScriptDecisionTableDeserializer;
  */
 public class ScriptDecisionTableResourceBuilder implements ResourceBuilder<ScriptDecisionTable> {
 	private ScriptDecisionTableDeserializer scriptDecisionTableDeserializer;
-	public ScriptDecisionTable build(Element root) {
-		return scriptDecisionTableDeserializer.deserialize(root);
+	public ScriptDecisionTable build(Element root,boolean withPermission) {
+		return scriptDecisionTableDeserializer.deserialize(root,withPermission);
 	}
 	public ResourceType getType() {
 		return ResourceType.ScriptDecisionTable;

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/builder/resource/VariableLibraryResourceBuilder.java

@@ -26,9 +26,9 @@ import com.bstek.urule.parse.deserializer.VariableLibraryDeserializer;
  */
 public class VariableLibraryResourceBuilder implements ResourceBuilder<VariableLibrary> {
 	private VariableLibraryDeserializer variableLibraryDeserializer;
-	public VariableLibrary build(Element root) {
+	public VariableLibrary build(Element root,boolean withPermission) {
 		VariableLibrary lib=new VariableLibrary();
-		lib.setVariableCategories(variableLibraryDeserializer.deserialize(root));
+		lib.setVariableCategories(variableLibraryDeserializer.deserialize(root,withPermission));
 		return lib;
 	}
 

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/AbstractParser.java

@@ -29,7 +29,7 @@ import com.bstek.urule.model.rule.Value;
  * @since 2015年2月28日
  */
 public abstract  class AbstractParser<T> implements Parser<T> {
-	protected List<Parameter> parseParameters(Element element,ValueParser valueParser) {
+	protected List<Parameter> parseParameters(Element element,ValueParser valueParser,boolean withPermission) {
 		List<Parameter> parameters=new ArrayList<Parameter>();
 		for(Object obj:element.elements()){
 			if(obj==null || !(obj instanceof Element)){
@@ -46,7 +46,7 @@ public abstract  class AbstractParser<T> implements Parser<T> {
 					}
 					Element e=(Element)o;
 					if(valueParser.support(e.getName())){
-						Value value=valueParser.parse(e);
+						Value value=valueParser.parse(e,withPermission);
 						parameter.setValue(value);
 						break;
 					}

+ 4 - 4
urule-core/src/main/java/com/bstek/urule/parse/AbstractRuleParser.java

@@ -33,7 +33,7 @@ public abstract class AbstractRuleParser<T> implements Parser<T> {
 	protected LhsParser lhsParser;
 	protected RhsParser rhsParser;
 	private OtherParser otherParser;
-	public void parseRule(Rule rule,Element element) {
+	public void parseRule(Rule rule,Element element,boolean withPermission) {
 		rule.setName(element.attributeValue("name"));
 		String salience=element.attributeValue("salience");
 		if(StringUtils.isNotEmpty(salience)){
@@ -81,11 +81,11 @@ public abstract class AbstractRuleParser<T> implements Parser<T> {
 			}
 			Element ele=(Element)obj;
 			if(lhsParser.support(ele.getName())){
-				rule.setLhs(lhsParser.parse(ele));				
+				rule.setLhs(lhsParser.parse(ele,withPermission));				
 			}else if(rhsParser.support(ele.getName())){
-				rule.setRhs(rhsParser.parse(ele));				
+				rule.setRhs(rhsParser.parse(ele,withPermission));				
 			}else if(otherParser.support(ele.getName())){
-				rule.setOther(otherParser.parse(ele));
+				rule.setOther(otherParser.parse(ele,withPermission));
 			}else if(ele.getName().equals("remark")){
 				rule.setRemark(ele.getText());
 			}

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/ActionLibraryParser.java

@@ -28,7 +28,7 @@ import com.bstek.urule.model.library.action.SpringBean;
  * @since 2014年12月23日
  */
 public class ActionLibraryParser implements Parser<ActionLibrary> {
-	public ActionLibrary parse(Element element) {
+	public ActionLibrary parse(Element element,boolean withPermission) {
 		ActionLibrary lib=new ActionLibrary();
 		for(Object obj:element.elements()){
 			if(obj==null){

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/CommonFunctionActionParser.java

@@ -27,7 +27,7 @@ import com.bstek.urule.model.rule.lhs.CommonFunctionParameter;
  */
 public class CommonFunctionActionParser extends ActionParser {
 	@Override
-	public Action parse(Element element) {
+	public Action parse(Element element,boolean withPermission) {
 		ExecuteCommonFunctionAction action=new ExecuteCommonFunctionAction();
 		action.setLabel(element.attributeValue("function-label"));
 		action.setName(element.attributeValue("function-name"));
@@ -51,7 +51,7 @@ public class CommonFunctionActionParser extends ActionParser {
 				if(!e.getName().equals("value")){
 					continue;
 				}
-				p.setObjectParameter(valueParser.parse(e));
+				p.setObjectParameter(valueParser.parse(e,withPermission));
 			}
 			action.setParameter(p);
 		}

+ 3 - 3
urule-core/src/main/java/com/bstek/urule/parse/ComplexArithmeticParser.java

@@ -27,7 +27,7 @@ import com.bstek.urule.model.rule.ComplexArithmetic;
 public class ComplexArithmeticParser implements Parser<ComplexArithmetic> {
 	private ValueParser valueParser;
 	private ParenParser parenParser;
-	public ComplexArithmetic parse(Element element) {
+	public ComplexArithmetic parse(Element element,boolean withPermission) {
 		ComplexArithmetic arithmetic=new ComplexArithmetic();
 		ArithmeticType arithmeticType=ArithmeticType.valueOf(element.attributeValue("type"));
 		arithmetic.setType(arithmeticType);
@@ -37,9 +37,9 @@ public class ComplexArithmeticParser implements Parser<ComplexArithmetic> {
 			}
 			Element ele=(Element)obj;
 			if(valueParser.support(ele.getName())){
-				arithmetic.setValue(valueParser.parse(ele));
+				arithmetic.setValue(valueParser.parse(ele,withPermission));
 			}else if(parenParser.support(ele.getName())){
-				arithmetic.setValue(parenParser.parse(ele));
+				arithmetic.setValue(parenParser.parse(ele,withPermission));
 			}
 		}
 		return arithmetic;

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/ConsolePrintActionParser.java

@@ -25,7 +25,7 @@ import com.bstek.urule.action.ConsolePrintAction;
  * @since 2014年12月23日
  */
 public class ConsolePrintActionParser extends ActionParser {
-	public Action parse(Element element) {
+	public Action parse(Element element,boolean withPermission) {
 		ConsolePrintAction action=new ConsolePrintAction();
 		for(Object obj:element.elements()){
 			if(obj==null || !(obj instanceof Element)){
@@ -33,7 +33,7 @@ public class ConsolePrintActionParser extends ActionParser {
 			}
 			Element ele=(Element)obj;
 			if(valueParser.support(ele.getName())){
-				action.setValue(valueParser.parse(ele));
+				action.setValue(valueParser.parse(ele,withPermission));
 				break;
 			}
 		}

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/ConstantLibraryParser.java

@@ -31,7 +31,7 @@ import com.bstek.urule.model.library.constant.ConstantLibrary;
  */
 public class ConstantLibraryParser implements Parser<ConstantLibrary> {
 	public static final String BEAN_ID="urule.constantLibraryParser";
-	public ConstantLibrary parse(Element element) {
+	public ConstantLibrary parse(Element element,boolean withPermission) {
 		List<ConstantCategory> categories=new ArrayList<ConstantCategory>();
 		for(Object obj:element.elements()){
 			if(obj==null || !(obj instanceof Element)){

+ 3 - 3
urule-core/src/main/java/com/bstek/urule/parse/CriteriaParser.java

@@ -28,7 +28,7 @@ import com.bstek.urule.model.rule.lhs.Criterion;
 public class CriteriaParser extends CriterionParser {
 	private ValueParser valueParser;
 	private LeftParser leftParser;
-	public Criterion parse(Element element) {
+	public Criterion parse(Element element,boolean withPermission) {
 		Criteria criteria=new Criteria();
 		Op op=Op.valueOf(element.attributeValue("op"));
 		criteria.setOp(op);
@@ -39,9 +39,9 @@ public class CriteriaParser extends CriterionParser {
 			Element ele=(Element)obj;
 			String name=ele.getName();
 			if(name.equals("value")){
-				criteria.setValue(valueParser.parse(ele));
+				criteria.setValue(valueParser.parse(ele,withPermission));
 			}else if(name.equals("left")){
-				criteria.setLeft(leftParser.parse(ele));
+				criteria.setLeft(leftParser.parse(ele,withPermission));
 			}
 		}
 		return criteria;

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/CriterionParser.java

@@ -32,7 +32,7 @@ import com.bstek.urule.model.rule.lhs.Criterion;
 public abstract class CriterionParser extends AbstractParser<Criterion> implements ApplicationContextAware {
 	protected Collection<CriterionParser> criterionParsers;
 	
-	protected List<Criterion> parseCriterion(Element element){
+	protected List<Criterion> parseCriterion(Element element,boolean withPermission){
 		List<Criterion> list=null;
 		for(Object obj:element.elements()){
 			if(obj==null || !(obj instanceof Element)){
@@ -43,7 +43,7 @@ public abstract class CriterionParser extends AbstractParser<Criterion> implemen
 			for(CriterionParser parser:criterionParsers){
 				if(parser.support(name)){
 					if(list==null)list=new ArrayList<Criterion>();
-					Criterion criterion=parser.parse(ele);
+					Criterion criterion=parser.parse(ele,withPermission);
 					if(criterion!=null){
 						list.add(criterion);						
 					}

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/ExecuteMethodActionParser.java

@@ -28,13 +28,13 @@ import com.bstek.urule.model.rule.Parameter;
  * @since 2014年12月23日
  */
 public class ExecuteMethodActionParser extends ActionParser {
-	public Action parse(Element element) {
+	public Action parse(Element element,boolean withPermission) {
 		ExecuteMethodAction action=new ExecuteMethodAction();
 		action.setBeanId(element.attributeValue("bean"));
 		action.setBeanLabel(element.attributeValue("bean-label"));
 		action.setMethodLabel(element.attributeValue("method-label"));
 		action.setMethodName(element.attributeValue("method-name"));
-		List<Parameter> parameters = parseParameters(element,valueParser);
+		List<Parameter> parameters = parseParameters(element,valueParser,withPermission);
 		action.setParameters(parameters);
 		return action;
 	}

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/JunctionParser.java

@@ -27,8 +27,8 @@ import com.bstek.urule.model.rule.lhs.Or;
  * @since 2014年12月23日
  */
 public class JunctionParser extends CriterionParser {
-	public Criterion parse(Element element) {
-		List<Criterion> list=parseCriterion(element);
+	public Criterion parse(Element element,boolean withPermission) {
+		List<Criterion> list=parseCriterion(element,withPermission);
 		if(list==null || list.size()==0){
 			return null;
 		}

+ 11 - 11
urule-core/src/main/java/com/bstek/urule/parse/LeftParser.java

@@ -36,7 +36,7 @@ public class LeftParser extends AbstractParser<Left> {
 	private SimpleArithmeticParser arithmeticParser;
 	private ValueParser valueParser;
 	@Override
-	public Left parse(Element element) {
+	public Left parse(Element element,boolean withPermission) {
 		Left left=new Left();
 		String type=element.attributeValue("type");
 		if(StringUtils.isNotEmpty(type)){
@@ -49,16 +49,16 @@ public class LeftParser extends AbstractParser<Left> {
 			left.setLeftPart(buildVariableLeftPart(element));
 			break;
 		case function:
-			left.setLeftPart(buildFunctionLeftPart(element));
+			left.setLeftPart(buildFunctionLeftPart(element,withPermission));
 			break;
 		case method:
-			left.setLeftPart(buildMethodLeftPart(element));
+			left.setLeftPart(buildMethodLeftPart(element,withPermission));
 			break;
 		case parameter:
 			left.setLeftPart(buildVariableLeftPart(element));
 			break;
 		case commonfunction:
-			left.setLeftPart(buildCommonFunctionLeftPart(element));
+			left.setLeftPart(buildCommonFunctionLeftPart(element,withPermission));
 		case NamedReference:
 			throw new RuleException("Not support reference type.");
 		case all:
@@ -76,14 +76,14 @@ public class LeftParser extends AbstractParser<Left> {
 			}
 			Element ele=(Element)obj;
 			if(arithmeticParser.support(ele.getName())){
-				left.setArithmetic(arithmeticParser.parse(ele));
+				left.setArithmetic(arithmeticParser.parse(ele,withPermission));
 			}
 		}
 		return left;
 	}
 
 	
-	private CommonFunctionLeftPart buildCommonFunctionLeftPart(Element element){
+	private CommonFunctionLeftPart buildCommonFunctionLeftPart(Element element,boolean withPermission){
 		CommonFunctionLeftPart part=new CommonFunctionLeftPart();
 		part.setName(element.attributeValue("function-name"));
 		part.setLabel(element.attributeValue("function-label"));
@@ -107,27 +107,27 @@ public class LeftParser extends AbstractParser<Left> {
 				if(!e.getName().equals("value")){
 					continue;
 				}
-				p.setObjectParameter(valueParser.parse(e));
+				p.setObjectParameter(valueParser.parse(e,withPermission));
 			}
 			part.setParameter(p);
 		}
 		return part;
 	}
 	
-	private MethodLeftPart buildMethodLeftPart(Element element){
+	private MethodLeftPart buildMethodLeftPart(Element element,boolean withPermission){
 		MethodLeftPart part=new MethodLeftPart();
 		part.setBeanId(element.attributeValue("bean-name"));
 		part.setBeanLabel(element.attributeValue("bean-label"));
 		part.setMethodLabel(element.attributeValue("method-label"));
 		part.setMethodName(element.attributeValue("method-name"));
-		part.setParameters(parseParameters(element, valueParser));
+		part.setParameters(parseParameters(element, valueParser,withPermission));
 		return part;
 	}
 	
-	private FunctionLeftPart buildFunctionLeftPart(Element element){
+	private FunctionLeftPart buildFunctionLeftPart(Element element,boolean withPermission){
 		FunctionLeftPart part=new FunctionLeftPart();
 		part.setName(element.attributeValue("name"));
-		part.setParameters(parseParameters(element, valueParser));
+		part.setParameters(parseParameters(element, valueParser,withPermission));
 		return part;
 	}
 	

+ 4 - 4
urule-core/src/main/java/com/bstek/urule/parse/LhsParser.java

@@ -31,13 +31,13 @@ import com.bstek.urule.model.rule.lhs.Lhs;
  */
 public class LhsParser implements Parser<Lhs>,ApplicationContextAware {
 	private Collection<CriterionParser> criterionParsers;
-	public Lhs parse(Element element) {
+	public Lhs parse(Element element,boolean withPermission) {
 		Lhs lhs=new Lhs();
-		lhs.setCriterion(parseCriterion(element));
+		lhs.setCriterion(parseCriterion(element,withPermission));
 		return lhs;
 	}
 	
-	public Criterion parseCriterion(Element element){
+	public Criterion parseCriterion(Element element,boolean withPermission){
 		Criterion criterion=null;
 		for(Object obj:element.elements()){
 			if(obj==null || !(obj instanceof Element)){
@@ -47,7 +47,7 @@ public class LhsParser implements Parser<Lhs>,ApplicationContextAware {
 			String name=ele.getName();
 			for(CriterionParser parser:criterionParsers){
 				if(parser.support(name)){
-					criterion=(Criterion)parser.parse(ele);
+					criterion=(Criterion)parser.parse(ele,withPermission);
 					if(criterion!=null){
 						break;
 					}

+ 5 - 5
urule-core/src/main/java/com/bstek/urule/parse/LoopRuleParser.java

@@ -28,9 +28,9 @@ import com.bstek.urule.model.rule.loop.LoopTarget;
  */
 public class LoopRuleParser extends AbstractRuleParser<LoopRule> {
 	private ValueParser valueParser;
-	public LoopRule parse(Element element) {
+	public LoopRule parse(Element element,boolean withPermission) {
 		LoopRule rule=new LoopRule();
-		parseRule(rule, element);
+		parseRule(rule, element,withPermission);
 		
 		LoopStart loopStart=new LoopStart();
 		rule.setLoopStart(loopStart);
@@ -43,9 +43,9 @@ public class LoopRuleParser extends AbstractRuleParser<LoopRule> {
 			Element ele=(Element)obj;
 			String name=ele.getName();
 			if(name.equals("loop-start")){
-				loopStart.setActions(rhsParser.parseActions(ele));
+				loopStart.setActions(rhsParser.parseActions(ele,withPermission));
 			}else if(name.equals("loop-end")){
-				loopEnd.setActions(rhsParser.parseActions(ele));
+				loopEnd.setActions(rhsParser.parseActions(ele,withPermission));
 			}else if(name.equals("loop-target")){
 				LoopTarget loopTarget=new LoopTarget();
 				rule.setLoopTarget(loopTarget);			
@@ -55,7 +55,7 @@ public class LoopRuleParser extends AbstractRuleParser<LoopRule> {
 					}
 					Element e=(Element)eleObj;
 					if(valueParser.support(e.getName())){
-						loopTarget.setValue(valueParser.parse(e));
+						loopTarget.setValue(valueParser.parse(e,withPermission));
 						break;
 					}
 				}

+ 4 - 4
urule-core/src/main/java/com/bstek/urule/parse/NamedJunctionParser.java

@@ -34,7 +34,7 @@ import com.bstek.urule.model.rule.lhs.NamedJunction;
  */
 public class NamedJunctionParser extends CriterionParser {
 	private ValueParser valueParser;
-	public Criterion parse(Element element) {
+	public Criterion parse(Element element,boolean withPermission) {
 		NamedJunction junction=new NamedJunction();
 		junction.setReferenceName(element.attributeValue("reference-name"));
 		junction.setVariableCategory(element.attributeValue("var-category"));
@@ -50,12 +50,12 @@ public class NamedJunctionParser extends CriterionParser {
 			if(!name.equals("named-criteria")){
 				continue;
 			}
-			items.add(parseNamedItem(ele));
+			items.add(parseNamedItem(ele,withPermission));
 		}
 		return junction;
 	}
 	
-	private NamedItem parseNamedItem(Element element){
+	private NamedItem parseNamedItem(Element element,boolean withPermission){
 		NamedItem item=new NamedItem();
 		String variable=element.attributeValue("var");
 		if(StringUtils.isNotEmpty(variable)){
@@ -76,7 +76,7 @@ public class NamedJunctionParser extends CriterionParser {
 			}
 			Element ele=(Element)obj;
 			if(valueParser.support(ele.getName())){
-				item.setValue(valueParser.parse(ele));
+				item.setValue(valueParser.parse(ele,withPermission));
 				break;
 			}
 		}

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/OtherParser.java

@@ -30,7 +30,7 @@ import com.bstek.urule.model.rule.Other;
  */
 public class OtherParser implements Parser<Other>,ApplicationContextAware {
 	private Collection<ActionParser> actionParsers;
-	public Other parse(Element element) {
+	public Other parse(Element element,boolean withPermission) {
 		Other other=new Other();
 		for(Object obj:element.elements()){
 			if(obj==null || !(obj instanceof Element)){
@@ -40,7 +40,7 @@ public class OtherParser implements Parser<Other>,ApplicationContextAware {
 			String name=ele.getName();
 			for(ActionParser actionParser:actionParsers){
 				if(actionParser.support(name)){
-					other.addAction(actionParser.parse(ele));
+					other.addAction(actionParser.parse(ele,withPermission));
 					break;
 				}
 			}

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/ParameterLibraryParser.java

@@ -29,7 +29,7 @@ import com.bstek.urule.model.library.variable.Variable;
 public class ParameterLibraryParser implements Parser<List<Variable>> {
 	private VariableParser variableParser;
 	@Override
-	public List<Variable> parse(Element element) {
+	public List<Variable> parse(Element element,boolean withPermission) {
 		List<Variable> variables=new ArrayList<Variable>();
 		for(Object obj:element.elements()){
 			if(obj==null || !(obj instanceof Element)){
@@ -38,7 +38,7 @@ public class ParameterLibraryParser implements Parser<List<Variable>> {
 			Element ele=(Element)obj;
 			String name=ele.getName();
 			if(name.equals("parameter")){
-				variables.add(variableParser.parse(ele));
+				variables.add(variableParser.parse(ele,withPermission));
 			}
 		}
 		return variables;

+ 3 - 3
urule-core/src/main/java/com/bstek/urule/parse/ParenParser.java

@@ -27,7 +27,7 @@ public class ParenParser implements Parser<ParenValue> {
 	private ValueParser valueParser;
 	private ComplexArithmeticParser arithmeticParser;
 	@Override
-	public ParenValue parse(Element element) {
+	public ParenValue parse(Element element,boolean withPermission) {
 		ParenValue value=new ParenValue();
 		for(Object obj:element.elements()){
 			if(obj==null || !(obj instanceof Element)){
@@ -35,9 +35,9 @@ public class ParenParser implements Parser<ParenValue> {
 			}
 			Element ele=(Element)obj;
 			if(valueParser.support(ele.getName())){
-				value.setValue(valueParser.parse(ele));
+				value.setValue(valueParser.parse(ele,withPermission));
 			}else if(arithmeticParser.support(ele.getName())){
-				value.setArithmetic(arithmeticParser.parse(ele));
+				value.setArithmetic(arithmeticParser.parse(ele,withPermission));
 			}
 		}
 		return value;

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/Parser.java

@@ -23,5 +23,5 @@ import org.dom4j.Element;
  */
 public interface Parser<T> {
 	boolean support(String name);
-	T parse(Element element);
+	T parse(Element element,boolean withPermission);
 }

+ 4 - 4
urule-core/src/main/java/com/bstek/urule/parse/RhsParser.java

@@ -33,12 +33,12 @@ import com.bstek.urule.model.rule.Rhs;
  */
 public class RhsParser implements Parser<Rhs>,ApplicationContextAware {
 	private Collection<ActionParser> actionParsers;
-	public Rhs parse(Element element) {
+	public Rhs parse(Element element,boolean withPermission) {
 		Rhs rhs=new Rhs();
-		rhs.setActions(parseActions(element));
+		rhs.setActions(parseActions(element,withPermission));
 		return rhs;
 	}
-	public List<Action> parseActions(Element element){
+	public List<Action> parseActions(Element element,boolean withPermission){
 		List<Action> actions=new ArrayList<Action>();
 		for(Object obj:element.elements()){
 			if(obj==null || !(obj instanceof Element)){
@@ -48,7 +48,7 @@ public class RhsParser implements Parser<Rhs>,ApplicationContextAware {
 			String name=ele.getName();
 			for(ActionParser actionParser:actionParsers){
 				if(actionParser.support(name)){
-					actions.add(actionParser.parse(ele));
+					actions.add(actionParser.parse(ele,withPermission));
 					break;
 				}
 			}

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/RuleParser.java

@@ -24,9 +24,9 @@ import com.bstek.urule.model.rule.Rule;
  * @since 2014年12月23日
  */
 public class RuleParser extends AbstractRuleParser<Rule> {
-	public Rule parse(Element element) {
+	public Rule parse(Element element,boolean withPermission) {
 		Rule rule=new Rule();
-		parseRule(rule, element);
+		parseRule(rule, element,withPermission);
 		return rule;
 	}
 	public boolean support(String name) {

+ 4 - 4
urule-core/src/main/java/com/bstek/urule/parse/RuleSetParser.java

@@ -35,7 +35,7 @@ public class RuleSetParser implements Parser<RuleSet> {
 	private RuleParser ruleParser;
 	private LoopRuleParser loopRuleParser;
 	private RulesRebuilder rulesRebuilder;
-	public RuleSet parse(Element element) {
+	public RuleSet parse(Element element,boolean withPermission) {
 		RuleSet ruleSet=new RuleSet();
 		String parameterLibrary=element.attributeValue("parameter-library");
 		if(StringUtils.isNotEmpty(parameterLibrary)){
@@ -52,9 +52,9 @@ public class RuleSetParser implements Parser<RuleSet> {
 			Element ele=(Element)obj;
 			String name=ele.getName();
 			if(ruleParser.support(name)){
-				rules.add(ruleParser.parse(ele));
+				rules.add(ruleParser.parse(ele,withPermission));
 			}else if(loopRuleParser.support(name)){
-				rules.add(loopRuleParser.parse(ele));
+				rules.add(loopRuleParser.parse(ele,withPermission));
 			}else if(name.equals("import-variable-library")){
 				ruleSet.addLibrary(new Library(ele.attributeValue("path"),null,LibraryType.Variable));
 			}else if(name.equals("import-constant-library")){
@@ -68,7 +68,7 @@ public class RuleSetParser implements Parser<RuleSet> {
 			}
 		}
 		ruleSet.setRules(rules);
-		rulesRebuilder.rebuildRules(ruleSet.getLibraries(), rules);
+		rulesRebuilder.rebuildRules(ruleSet.getLibraries(), rules,withPermission);
 		return ruleSet;
 	}
 	public void setRulesRebuilder(RulesRebuilder rulesRebuilder) {

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/SimpleArithmeticParser.java

@@ -26,7 +26,7 @@ import com.bstek.urule.model.rule.SimpleArithmeticValue;
  * @since 2014年12月23日
  */
 public class SimpleArithmeticParser implements Parser<SimpleArithmetic> {
-	public SimpleArithmetic parse(Element element) {
+	public SimpleArithmetic parse(Element element,boolean withPermission) {
 		SimpleArithmetic arithmetic=new SimpleArithmetic();
 		ArithmeticType arithmeticType=ArithmeticType.valueOf(element.attributeValue("type"));
 		arithmetic.setType(arithmeticType);
@@ -39,7 +39,7 @@ public class SimpleArithmeticParser implements Parser<SimpleArithmetic> {
 			}
 			Element ele=(Element)obj;
 			if(this.support(ele.getName())){
-				value.setArithmetic(this.parse(ele));
+				value.setArithmetic(this.parse(ele,withPermission));
 				break;
 			}
 		}

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/SpringBeanParser.java

@@ -27,7 +27,7 @@ import com.bstek.urule.model.library.action.SpringBean;
  * @since 2014年12月23日
  */
 public class SpringBeanParser implements Parser<SpringBean> {
-	public SpringBean parse(Element element) {
+	public SpringBean parse(Element element,boolean withPermission) {
 		SpringBean bean=new SpringBean();
 		bean.setId(element.attributeValue("id"));
 		for(Object obj:element.elements()){

+ 4 - 4
urule-core/src/main/java/com/bstek/urule/parse/ValueParser.java

@@ -41,7 +41,7 @@ import com.bstek.urule.model.rule.lhs.CommonFunctionParameter;
  */
 public class ValueParser extends AbstractParser<Value> {
 	private ComplexArithmeticParser arithmeticParser;
-	public Value parse(Element element) {
+	public Value parse(Element element,boolean withPermission) {
 		AbstractValue av=null;
 		ValueType type=ValueType.valueOf(element.attributeValue("type"));
 		if(type.equals(ValueType.Input)){
@@ -88,7 +88,7 @@ public class ValueParser extends AbstractParser<Value> {
 			mv.setMethodName(methodName);
 			String methodLabel=element.attributeValue("method-label");
 			mv.setMethodLabel(methodLabel);
-			List<Parameter> parameters = parseParameters(element,this);
+			List<Parameter> parameters = parseParameters(element,this,withPermission);
 			mv.setParameters(parameters);
 			av=mv;
 		}else if(type.equals(ValueType.CommonFunction)){
@@ -115,7 +115,7 @@ public class ValueParser extends AbstractParser<Value> {
 					if(!e.getName().equals("value")){
 						continue;
 					}
-					p.setObjectParameter(this.parse(e));
+					p.setObjectParameter(this.parse(e,withPermission));
 				}
 				value.setParameter(p);
 			}
@@ -150,7 +150,7 @@ public class ValueParser extends AbstractParser<Value> {
 			Element ele=(Element)obj;
 			String name=ele.getName();
 			if(arithmeticParser.support(name)){
-				av.setArithmetic(arithmeticParser.parse(ele));
+				av.setArithmetic(arithmeticParser.parse(ele,withPermission));
 				break;
 			}
 		}

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/VariableAssignActionParser.java

@@ -27,7 +27,7 @@ import com.bstek.urule.model.rule.lhs.LeftType;
  * @since 2014年12月23日
  */
 public class VariableAssignActionParser extends ActionParser {
-	public Action parse(Element element) {
+	public Action parse(Element element,boolean withPermission) {
 		VariableAssignAction action=new VariableAssignAction();
 		String referenceName=element.attributeValue("reference-name");
 		if(StringUtils.isNotEmpty(referenceName)){
@@ -59,7 +59,7 @@ public class VariableAssignActionParser extends ActionParser {
 			}
 			Element ele=(Element)obj;
 			if(valueParser.support(ele.getName())){
-				action.setValue(valueParser.parse(ele));
+				action.setValue(valueParser.parse(ele,withPermission));
 				break;
 			}
 		}

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/VariableCategoryParser.java

@@ -26,7 +26,7 @@ import com.bstek.urule.model.library.variable.VariableCategory;
  */
 public class VariableCategoryParser implements Parser<VariableCategory> {
 	private VariableParser variableParser;
-	public VariableCategory parse(Element element) {
+	public VariableCategory parse(Element element,boolean withPermission) {
 		VariableCategory category=new VariableCategory();
 		category.setName(element.attributeValue("name"));
 		category.setClazz(element.attributeValue("clazz"));
@@ -38,7 +38,7 @@ public class VariableCategoryParser implements Parser<VariableCategory> {
 			Element ele=(Element)obj;
 			String name=ele.getName();
 			if(variableParser.support(name)){
-				category.addVariable(variableParser.parse(ele));
+				category.addVariable(variableParser.parse(ele,withPermission));
 			}
 		}
 		return category;

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/VariableLibraryParser.java

@@ -28,7 +28,7 @@ import com.bstek.urule.model.library.variable.VariableCategory;
  */
 public class VariableLibraryParser implements Parser<List<VariableCategory>> {
 	private VariableCategoryParser variableCategoryParser;
-	public List<VariableCategory> parse(Element element) {
+	public List<VariableCategory> parse(Element element,boolean withPermission) {
 		List<VariableCategory> variableCategories=new ArrayList<VariableCategory>();
 		for(Object obj:element.elements()){
 			if(obj==null || !(obj instanceof Element)){
@@ -37,7 +37,7 @@ public class VariableLibraryParser implements Parser<List<VariableCategory>> {
 			Element ele=(Element)obj;
 			String name=ele.getName();
 			if(variableCategoryParser.support(name)){
-				variableCategories.add(variableCategoryParser.parse(ele));
+				variableCategories.add(variableCategoryParser.parse(ele,withPermission));
 			}
 		}
 		return variableCategories;

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/VariableParser.java

@@ -26,7 +26,7 @@ import com.bstek.urule.model.library.variable.Variable;
  * @since 2014年12月23日
  */
 public class VariableParser implements Parser<Variable> {
-	public Variable parse(Element element) {
+	public Variable parse(Element element,boolean withPermission) {
 		Variable variable=new Variable();
 		variable.setName(element.attributeValue("name"));
 		variable.setLabel(element.attributeValue("label"));

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/decisiontree/ActionTreeNodeParser.java

@@ -37,7 +37,7 @@ import com.bstek.urule.parse.Parser;
 public class ActionTreeNodeParser implements Parser<ActionTreeNode>,ApplicationContextAware {
 	private Collection<ActionParser> actionParsers;
 	@Override
-	public ActionTreeNode parse(Element element) {
+	public ActionTreeNode parse(Element element,boolean withPermission) {
 		ActionTreeNode node=new ActionTreeNode();
 		node.setNodeType(TreeNodeType.action);
 		List<Action> actions=new ArrayList<Action>();
@@ -50,7 +50,7 @@ public class ActionTreeNodeParser implements Parser<ActionTreeNode>,ApplicationC
 			
 			for(ActionParser actionParser:actionParsers){
 				if(actionParser.support(name)){
-					actions.add(actionParser.parse(ele));
+					actions.add(actionParser.parse(ele,withPermission));
 					break;
 				}
 			}

+ 5 - 5
urule-core/src/main/java/com/bstek/urule/parse/decisiontree/ConditionTreeNodeParser.java

@@ -37,7 +37,7 @@ public class ConditionTreeNodeParser implements Parser<ConditionTreeNode> {
 	private VariableTreeNodeParser variableTreeNodeParser;
 	private ActionTreeNodeParser actionTreeNodeParser;
 	@Override
-	public ConditionTreeNode parse(Element element) {
+	public ConditionTreeNode parse(Element element,boolean withPermission) {
 		ConditionTreeNode node=new ConditionTreeNode();
 		node.setNodeType(TreeNodeType.condition);
 		node.setOp(Op.valueOf(element.attributeValue("op")));
@@ -51,17 +51,17 @@ public class ConditionTreeNodeParser implements Parser<ConditionTreeNode> {
 			Element ele=(Element)obj;
 			String name=ele.getName();
 			if(valueParser.support(name)){
-				node.setValue(valueParser.parse(ele));
+				node.setValue(valueParser.parse(ele,withPermission));
 			}else if(support(name)){
-				ConditionTreeNode cn=parse(ele);
+				ConditionTreeNode cn=parse(ele,withPermission);
 				cn.setParentNode(node);
 				conditionTreeNodes.add(cn);
 			}else if(variableTreeNodeParser.support(name)){
-				VariableTreeNode vn=variableTreeNodeParser.parse(ele);
+				VariableTreeNode vn=variableTreeNodeParser.parse(ele,withPermission);
 				vn.setParentNode(node);
 				variableTreeNodes.add(vn);
 			}else if(actionTreeNodeParser.support(name)){
-				ActionTreeNode an=actionTreeNodeParser.parse(ele);
+				ActionTreeNode an=actionTreeNodeParser.parse(ele,withPermission);
 				an.setParentNode(node);
 				actionTreeNodes.add(an);
 			}

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/decisiontree/DecisionTreeParser.java

@@ -50,7 +50,7 @@ public class DecisionTreeParser implements Parser<DecisionTree> {
 	private VariableTreeNodeParser variableTreeNodeParser;
 	private RulesRebuilder rulesRebuilder;
 	@Override
-	public DecisionTree parse(Element element) {
+	public DecisionTree parse(Element element,boolean withPermission) {
 		DecisionTree tree=new DecisionTree();
 		
 		String salience=element.attributeValue("salience");
@@ -92,7 +92,7 @@ public class DecisionTreeParser implements Parser<DecisionTree> {
 			Element ele=(Element)obj;
 			String name=ele.getName();
 			if(variableTreeNodeParser.support(name)){
-				tree.setVariableTreeNode(variableTreeNodeParser.parse(ele));
+				tree.setVariableTreeNode(variableTreeNodeParser.parse(ele,withPermission));
 			}if(name.equals("import-variable-library")){
 				libs.add(new Library(ele.attributeValue("path"),null,LibraryType.Variable));
 			}else if(name.equals("import-constant-library")){

+ 3 - 3
urule-core/src/main/java/com/bstek/urule/parse/decisiontree/VariableTreeNodeParser.java

@@ -34,7 +34,7 @@ public class VariableTreeNodeParser implements Parser<VariableTreeNode> {
 	private LeftParser leftParser;
 	private ConditionTreeNodeParser conditionTreeNodeParser;
 	@Override
-	public VariableTreeNode parse(Element element) {
+	public VariableTreeNode parse(Element element,boolean withPermission) {
 		VariableTreeNode node=new VariableTreeNode();
 		node.setNodeType(TreeNodeType.variable);
 		List<ConditionTreeNode> conditionTreeNodes=new ArrayList<ConditionTreeNode>();
@@ -45,9 +45,9 @@ public class VariableTreeNodeParser implements Parser<VariableTreeNode> {
 			Element ele=(Element)obj;
 			String name=ele.getName();
 			if(name.equals("left")){
-				node.setLeft(leftParser.parse(ele));
+				node.setLeft(leftParser.parse(ele,withPermission));
 			}else if(conditionTreeNodeParser.support(name)){
-				ConditionTreeNode cn=conditionTreeNodeParser.parse(ele);
+				ConditionTreeNode cn=conditionTreeNodeParser.parse(ele,withPermission);
 				cn.setParentNode(node);
 				conditionTreeNodes.add(cn);
 			}

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/deserializer/ActionLibraryDeserializer.java

@@ -27,8 +27,8 @@ import com.bstek.urule.parse.ActionLibraryParser;
 public class ActionLibraryDeserializer implements Deserializer<ActionLibrary> {
 	public static final String BEAN_ID="urule.actionLibraryDeserializer";
 	private ActionLibraryParser actionLibraryParser;
-	public ActionLibrary deserialize(Element root) {
-		return actionLibraryParser.parse(root);
+	public ActionLibrary deserialize(Element root,boolean withPermission) {
+		return actionLibraryParser.parse(root,withPermission);
 	}
 	public boolean support(Element root) {
 		return actionLibraryParser.support(root.getName());

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/deserializer/ConstantLibraryDeserializer.java

@@ -27,8 +27,8 @@ import com.bstek.urule.parse.ConstantLibraryParser;
 public class ConstantLibraryDeserializer implements Deserializer<ConstantLibrary> {
 	public static final String BEAN_ID="urule.constantLibraryDeserializer";
 	private ConstantLibraryParser constantLibraryParser;
-	public ConstantLibrary deserialize(Element root) {
-		return constantLibraryParser.parse(root);
+	public ConstantLibrary deserialize(Element root,boolean withPermission) {
+		return constantLibraryParser.parse(root,withPermission);
 	}
 	public boolean support(Element root) {
 		return constantLibraryParser.support(root.getName());

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/deserializer/DecisionTableDeserializer.java

@@ -27,8 +27,8 @@ import com.bstek.urule.parse.table.DecisionTableParser;
 public class DecisionTableDeserializer implements Deserializer<DecisionTable>{
 	public static final String BEAN_ID="urule.decisionTableDeserializer";
 	private DecisionTableParser decisionTableParser;
-	public DecisionTable deserialize(Element root) {
-		return decisionTableParser.parse(root);
+	public DecisionTable deserialize(Element root,boolean withPermission) {
+		return decisionTableParser.parse(root,withPermission);
 	}
 	public boolean support(Element root) {
 		return decisionTableParser.support(root.getName());

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/deserializer/DecisionTreeDeserializer.java

@@ -28,8 +28,8 @@ public class DecisionTreeDeserializer implements Deserializer<DecisionTree> {
 	public static final String BEAN_ID="urule.decisionTreeDeserializer";
 	private DecisionTreeParser decisionTreeParser;
 	@Override
-	public DecisionTree deserialize(Element root) {
-		return decisionTreeParser.parse(root);
+	public DecisionTree deserialize(Element root,boolean withPermission) {
+		return decisionTreeParser.parse(root,withPermission);
 	}
 	public void setDecisionTreeParser(DecisionTreeParser decisionTreeParser) {
 		this.decisionTreeParser = decisionTreeParser;

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/deserializer/Deserializer.java

@@ -21,6 +21,6 @@ import org.dom4j.Element;
  * @since 2014年12月23日
  */
 public interface Deserializer<T>{
-	T deserialize(Element root);
+	T deserialize(Element root,boolean withPermission);
 	boolean support(Element root);
 }

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/deserializer/FlowDeserializer.java

@@ -26,8 +26,8 @@ import com.bstek.urule.parse.flow.FlowDefinitionParser;
 public class FlowDeserializer implements Deserializer<FlowDefinition>{
 	public static final String BEAN_ID="urule.flowDeserializer";
 	private FlowDefinitionParser flowDefinitionParser;
-	public FlowDefinition deserialize(Element root) {
-		return (FlowDefinition)flowDefinitionParser.parse(root);
+	public FlowDefinition deserialize(Element root,boolean withPermission) {
+		return (FlowDefinition)flowDefinitionParser.parse(root,withPermission);
 	}
 	public boolean support(Element root) {
 		if(flowDefinitionParser.support(root.getName())){

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/deserializer/ParameterLibraryDeserializer.java

@@ -30,8 +30,8 @@ public class ParameterLibraryDeserializer implements Deserializer<List<Variable>
 	public static final String BEAN_ID="urule.parameterLibraryDeserializer";
 	private ParameterLibraryParser parameterLibraryParser;
 	@Override
-	public List<Variable> deserialize(Element root) {
-		return parameterLibraryParser.parse(root);
+	public List<Variable> deserialize(Element root,boolean withPermission) {
+		return parameterLibraryParser.parse(root,withPermission);
 	}
 	@Override
 	public boolean support(Element root) {

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/deserializer/RuleSetDeserializer.java

@@ -27,8 +27,8 @@ import com.bstek.urule.parse.RuleSetParser;
 public class RuleSetDeserializer implements Deserializer<RuleSet>{
 	public static final String BEAN_ID="urule.ruleSetDeserializer";
 	private RuleSetParser ruleSetParser;
-	public RuleSet deserialize(Element root) {
-		return ruleSetParser.parse(root);
+	public RuleSet deserialize(Element root,boolean withPermission) {
+		return ruleSetParser.parse(root,withPermission);
 	}
 	public boolean support(Element root) {
 		if(ruleSetParser.support(root.getName())){

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/deserializer/ScorecardDeserializer.java

@@ -28,8 +28,8 @@ public class ScorecardDeserializer implements Deserializer<ScorecardDefinition>
 	public static final String BEAN_ID="urule.scorecardDeserializer";
 	private ScorecardParser scorecardParser;
 	@Override
-	public ScorecardDefinition deserialize(Element root) {
-		ScorecardDefinition card=scorecardParser.parse(root);
+	public ScorecardDefinition deserialize(Element root,boolean withPermission) {
+		ScorecardDefinition card=scorecardParser.parse(root,withPermission);
 		return card;
 	}
 	

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/deserializer/ScriptDecisionTableDeserializer.java

@@ -27,8 +27,8 @@ import com.bstek.urule.parse.table.ScriptDecisionTableParser;
 public class ScriptDecisionTableDeserializer implements Deserializer<ScriptDecisionTable>{
 	public static final String BEAN_ID="urule.scriptDecisionTableDeserializer";
 	private ScriptDecisionTableParser scriptDecisionTableParser;
-	public ScriptDecisionTable deserialize(Element root) {
-		return scriptDecisionTableParser.parse(root);
+	public ScriptDecisionTable deserialize(Element root,boolean withPermission) {
+		return scriptDecisionTableParser.parse(root,withPermission);
 	}
 	public boolean support(Element root) {
 		return scriptDecisionTableParser.support(root.getName());

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/deserializer/VariableLibraryDeserializer.java

@@ -30,8 +30,8 @@ import com.bstek.urule.parse.VariableLibraryParser;
 public class VariableLibraryDeserializer implements Deserializer<List<VariableCategory>>{
 	public static final String BEAN_ID="urule.variableLibraryDeserializer";
 	private VariableLibraryParser variableLibraryParser;
-	public List<VariableCategory> deserialize(Element root) {
-		return variableLibraryParser.parse(root);
+	public List<VariableCategory> deserialize(Element root,boolean withPermission) {
+		return variableLibraryParser.parse(root,withPermission);
 	}
 	public boolean support(Element root) {
 		if(variableLibraryParser.support(root.getName())){

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/flow/ActionNodeParser.java

@@ -24,7 +24,7 @@ import com.bstek.urule.model.flow.ActionNode;
  * @since 2014年12月23日
  */
 public class ActionNodeParser extends FlowNodeParser<ActionNode> {
-	public ActionNode parse(Element element) {
+	public ActionNode parse(Element element,boolean withPermission) {
 		ActionNode action=new ActionNode(element.attributeValue("name"));
 		action.setActionBean(element.attributeValue("action-bean"));
 		action.setEventBean(element.attributeValue("event-bean"));

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/flow/DecisionNodeParser.java

@@ -30,7 +30,7 @@ import com.bstek.urule.model.flow.DecisionType;
  * @since 2014年12月23日
  */
 public class DecisionNodeParser extends FlowNodeParser<DecisionNode> {
-	public DecisionNode parse(Element element) {
+	public DecisionNode parse(Element element,boolean withPermission) {
 		DecisionNode decision=new DecisionNode(element.attributeValue("name"));
 		decision.setEventBean(element.attributeValue("event-bean"));
 		String decitionType=element.attributeValue("decision-type");

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/flow/EndNodeParser.java

@@ -24,7 +24,7 @@ import com.bstek.urule.model.flow.EndNode;
  * @since 2014年12月23日
  */
 public class EndNodeParser extends FlowNodeParser<EndNode> {
-	public EndNode parse(Element element) {
+	public EndNode parse(Element element,boolean withPermission) {
 		EndNode end=new EndNode(element.attributeValue("name"));
 		end.setConnections(parseConnections(element));
 		end.setEventBean(element.attributeValue("event-bean"));

+ 2 - 2
urule-core/src/main/java/com/bstek/urule/parse/flow/FlowDefinitionParser.java

@@ -38,7 +38,7 @@ import com.bstek.urule.parse.Parser;
 @SuppressWarnings("rawtypes")
 public class FlowDefinitionParser implements Parser<FlowDefinition>,ApplicationContextAware {
 	private Collection<FlowNodeParser> nodeParsers;
-	public FlowDefinition parse(Element element) {
+	public FlowDefinition parse(Element element,boolean withPermission) {
 		FlowDefinition flow=new FlowDefinition();
 		flow.setId(element.attributeValue("id"));
 		String debug=element.attributeValue("debug");
@@ -63,7 +63,7 @@ public class FlowDefinitionParser implements Parser<FlowDefinition>,ApplicationC
 			}else{
 				for(FlowNodeParser parser:nodeParsers){
 					if(parser.support(ele.getName())){
-						nodes.add((FlowNode)parser.parse(ele));
+						nodes.add((FlowNode)parser.parse(ele,withPermission));
 						break;
 					}
 				}

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/flow/ForkNodeParser.java

@@ -24,7 +24,7 @@ import com.bstek.urule.model.flow.ForkNode;
  * @since 2014年12月23日
  */
 public class ForkNodeParser extends FlowNodeParser<ForkNode> {
-	public ForkNode parse(Element element) {
+	public ForkNode parse(Element element,boolean withPermission) {
 		ForkNode fork=new ForkNode(element.attributeValue("name"));
 		fork.setConnections(parseConnections(element));
 		fork.setEventBean(element.attributeValue("event-bean"));

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/flow/JoinNodeParser.java

@@ -24,7 +24,7 @@ import com.bstek.urule.model.flow.JoinNode;
  * @since 2014年12月23日
  */
 public class JoinNodeParser extends FlowNodeParser<JoinNode> {
-	public JoinNode parse(Element element) {
+	public JoinNode parse(Element element,boolean withPermission) {
 		JoinNode join=new JoinNode(element.attributeValue("name"));
 		join.setConnections(parseConnections(element));
 		join.setEventBean(element.attributeValue("event-bean"));

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/flow/RuleNodeParser.java

@@ -25,7 +25,7 @@ import com.bstek.urule.model.flow.RuleNode;
  */
 public class RuleNodeParser extends FlowNodeParser<RuleNode> {
 	@Override
-	public RuleNode parse(Element element) {
+	public RuleNode parse(Element element,boolean withPermission) {
 		RuleNode node=new RuleNode(element.attributeValue("name"));
 		node.setFile(element.attributeValue("file"));
 		node.setVersion(element.attributeValue("version"));

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/flow/RulePackageNodeParser.java

@@ -25,7 +25,7 @@ import com.bstek.urule.model.flow.RulePackageNode;
  */
 public class RulePackageNodeParser extends FlowNodeParser<RulePackageNode> {
 	@Override
-	public RulePackageNode parse(Element element) {
+	public RulePackageNode parse(Element element,boolean withPermission) {
 		RulePackageNode node=new RulePackageNode(element.attributeValue("name"));
 		node.setConnections(parseConnections(element));
 		node.setProject(element.attributeValue("project"));

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/flow/ScriptNodeParser.java

@@ -25,7 +25,7 @@ import com.bstek.urule.model.flow.ScriptNode;
  */
 public class ScriptNodeParser extends FlowNodeParser<ScriptNode> {
 	@Override
-	public ScriptNode parse(Element element) {
+	public ScriptNode parse(Element element,boolean withPermission) {
 		ScriptNode node =new ScriptNode();
 		node.setName(element.attributeValue("name"));
 		node.setEventBean(element.attributeValue("event-bean"));

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/flow/StartNodeParser.java

@@ -24,7 +24,7 @@ import com.bstek.urule.model.flow.StartNode;
  * @since 2014年12月23日
  */
 public class StartNodeParser extends FlowNodeParser<StartNode> {
-	public StartNode parse(Element element) {
+	public StartNode parse(Element element,boolean withPermission) {
 		StartNode start=new StartNode(element.attributeValue("name"));
 		start.setConnections(parseConnections(element));
 		start.setEventBean(element.attributeValue("event-bean"));

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/scorecard/AttributeRowParser.java

@@ -30,7 +30,7 @@ import com.bstek.urule.parse.Parser;
  */
 public class AttributeRowParser implements Parser<AttributeRow> {
 	@Override
-	public AttributeRow parse(Element element) {
+	public AttributeRow parse(Element element,boolean withPermission) {
 		AttributeRow row=new AttributeRow();
 		row.setRowNumber(Integer.valueOf(element.attributeValue("row-number")));
 		List<ConditionRow> rows=new ArrayList<ConditionRow>();

+ 3 - 3
urule-core/src/main/java/com/bstek/urule/parse/scorecard/CardCellParser.java

@@ -33,7 +33,7 @@ public class CardCellParser implements Parser<CardCell> {
 	private ValueParser valueParser;
 	private JointParser jointParser;
 	@Override
-	public CardCell parse(Element element) {
+	public CardCell parse(Element element,boolean withPermission) {
 		CardCell cell=new CardCell();
 		cell.setType(CellType.valueOf(element.attributeValue("type")));
 		cell.setCol(Integer.valueOf(element.attributeValue("col")));
@@ -51,9 +51,9 @@ public class CardCellParser implements Parser<CardCell> {
 			}
 			Element ele=(Element)obj;
 			if(valueParser.support(ele.getName())){
-				cell.setValue(valueParser.parse(ele));
+				cell.setValue(valueParser.parse(ele,withPermission));
 			}else if(jointParser.support(ele.getName())){
-				cell.setJoint(jointParser.parse(ele));
+				cell.setJoint(jointParser.parse(ele,withPermission));
 			}
 		}
 		return cell;

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/scorecard/CustomColParser.java

@@ -26,7 +26,7 @@ import com.bstek.urule.parse.Parser;
  */
 public class CustomColParser implements Parser<CustomCol> {
 	@Override
-	public CustomCol parse(Element element) {
+	public CustomCol parse(Element element,boolean withPermission) {
 		CustomCol col=new CustomCol();
 		col.setColNumber(Integer.parseInt(element.attributeValue("col-number")));
 		col.setName(element.attributeValue("name"));

+ 4 - 4
urule-core/src/main/java/com/bstek/urule/parse/scorecard/ScorecardParser.java

@@ -52,7 +52,7 @@ public class ScorecardParser implements Parser<ScorecardDefinition> {
 	private CustomColParser customColParser=new CustomColParser();
 	private RulesRebuilder rulesRebuilder;
 	@Override
-	public ScorecardDefinition parse(Element element) {
+	public ScorecardDefinition parse(Element element,boolean withPermission) {
 		ScorecardDefinition card=new ScorecardDefinition();
 		card.setName(element.attributeValue("name"));
 		card.setScoringType(ScoringType.valueOf(element.attributeValue("scoring-type")));
@@ -124,11 +124,11 @@ public class ScorecardParser implements Parser<ScorecardDefinition> {
 			Element ele=(Element)obj;
 			String name=ele.getName();
 			if(cardCellParser.support(name)){
-				cells.add(cardCellParser.parse(ele));
+				cells.add(cardCellParser.parse(ele,withPermission));
 			}else if(attributeRowParser.support(name)){
-				rows.add(attributeRowParser.parse(ele));
+				rows.add(attributeRowParser.parse(ele,withPermission));
 			}else if(customColParser.support(name)){
-				cols.add(customColParser.parse(ele));
+				cols.add(customColParser.parse(ele,withPermission));
 			}else if(name.equals("import-variable-library")){
 				card.addLibrary(new Library(ele.attributeValue("path"),null,LibraryType.Variable));
 			}else if(name.equals("import-constant-library")){

+ 4 - 4
urule-core/src/main/java/com/bstek/urule/parse/table/CellParser.java

@@ -35,7 +35,7 @@ public class CellParser implements Parser<Cell>,ApplicationContextAware {
 	private JointParser jointParser;
 	private ValueParser valueParser;
 	private Collection<ActionParser> actionParsers;
-	public Cell parse(Element element) {
+	public Cell parse(Element element,boolean withPermission) {
 		Cell cell=new Cell();
 		cell.setRow(Integer.valueOf(element.attributeValue("row")));
 		cell.setCol(Integer.valueOf(element.attributeValue("col")));
@@ -47,13 +47,13 @@ public class CellParser implements Parser<Cell>,ApplicationContextAware {
 			Element ele=(Element)obj;
 			String name=ele.getName();
 			if(jointParser.support(name)){
-				cell.setJoint(jointParser.parse(ele));
+				cell.setJoint(jointParser.parse(ele,withPermission));
 			}else if(valueParser.support(name)){
-				cell.setValue(valueParser.parse(ele));
+				cell.setValue(valueParser.parse(ele,withPermission));
 			}else{
 				for(ActionParser parser:actionParsers){
 					if(parser.support(name)){
-						cell.setAction(parser.parse(ele));
+						cell.setAction(parser.parse(ele,withPermission));
 						break;
 					}
 				}

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/table/ColumnParser.java

@@ -28,7 +28,7 @@ import com.bstek.urule.parse.Parser;
  * @since 2015年1月19日
  */
 public class ColumnParser implements Parser<Column> {
-	public Column parse(Element element) {
+	public Column parse(Element element,boolean withPermission) {
 		Column col=new Column();
 		col.setNum(Integer.valueOf(element.attributeValue("num")));
 		col.setType(ColumnType.valueOf(element.attributeValue("type")));

+ 4 - 4
urule-core/src/main/java/com/bstek/urule/parse/table/DecisionTableParser.java

@@ -47,7 +47,7 @@ public class DecisionTableParser implements Parser<DecisionTable> {
 	private ColumnParser columnParser;
 	private CellParser cellParser;
 	private RulesRebuilder rulesRebuilder;
-	public DecisionTable parse(Element element) {
+	public DecisionTable parse(Element element,boolean withPermission) {
 		DecisionTable table =new DecisionTable();
 		String salience=element.attributeValue("salience");
 		if(StringUtils.isNotEmpty(salience)){
@@ -85,11 +85,11 @@ public class DecisionTableParser implements Parser<DecisionTable> {
 			Element ele=(Element)obj;
 			String name=ele.getName();
 			if(rowParser.support(name)){
-				table.addRow(rowParser.parse(ele));
+				table.addRow(rowParser.parse(ele,withPermission));
 			}else if(columnParser.support(name)){
-				table.addColumn(columnParser.parse(ele));
+				table.addColumn(columnParser.parse(ele,withPermission));
 			}else if(cellParser.support(name)){
-				table.addCell(cellParser.parse(ele));
+				table.addCell(cellParser.parse(ele,withPermission));
 			}if(name.equals("import-variable-library")){
 				table.addLibrary(new Library(ele.attributeValue("path"),null,LibraryType.Variable));
 			}else if(name.equals("import-constant-library")){

+ 5 - 5
urule-core/src/main/java/com/bstek/urule/parse/table/JointParser.java

@@ -30,7 +30,7 @@ import com.bstek.urule.parse.ValueParser;
  */
 public class JointParser implements Parser<Joint> {
 	private ValueParser valueParser;
-	public Joint parse(Element element) {
+	public Joint parse(Element element,boolean withPermission) {
 		Joint joint=new Joint();
 		joint.setType(JointType.valueOf(element.attributeValue("type")));
 		for(Object obj:element.elements()){
@@ -39,14 +39,14 @@ public class JointParser implements Parser<Joint> {
 			}
 			Element ele=(Element)obj;
 			if(ele.getName().equals("condition")){
-				joint.addCondition(parseCondition(ele));
+				joint.addCondition(parseCondition(ele,withPermission));
 			}else if(support(ele.getName())){
-				joint.addJoint(parse(ele));
+				joint.addJoint(parse(ele,withPermission));
 			}
 		}
 		return joint;
 	}
-	public Condition parseCondition(Element element) {
+	public Condition parseCondition(Element element,boolean withPermission) {
 		Condition condition=new Condition();
 		condition.setOp(Op.valueOf(element.attributeValue("op")));
 		for(Object obj:element.elements()){
@@ -55,7 +55,7 @@ public class JointParser implements Parser<Joint> {
 			}
 			Element ele=(Element)obj;
 			if(valueParser.support(ele.getName())){
-				condition.setValue(valueParser.parse(ele));
+				condition.setValue(valueParser.parse(ele,withPermission));
 				break;
 			}
 		}

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/table/RowParser.java

@@ -25,7 +25,7 @@ import com.bstek.urule.parse.Parser;
  * @since 2015年1月19日
  */
 public class RowParser implements Parser<Row> {
-	public Row parse(Element element) {
+	public Row parse(Element element,boolean withPermission) {
 		Row row=new Row();
 		row.setHeight(Integer.valueOf(element.attributeValue("height")));
 		row.setNum(Integer.valueOf(element.attributeValue("num")));

+ 1 - 1
urule-core/src/main/java/com/bstek/urule/parse/table/ScriptCellParser.java

@@ -25,7 +25,7 @@ import com.bstek.urule.parse.Parser;
  * @since 2015年1月19日
  */
 public class ScriptCellParser implements Parser<ScriptCell>{
-	public ScriptCell parse(Element element) {
+	public ScriptCell parse(Element element,boolean withPermission) {
 		ScriptCell cell=new ScriptCell();
 		cell.setRow(Integer.valueOf(element.attributeValue("row")));
 		cell.setCol(Integer.valueOf(element.attributeValue("col")));

+ 4 - 4
urule-core/src/main/java/com/bstek/urule/parse/table/ScriptDecisionTableParser.java

@@ -30,7 +30,7 @@ public class ScriptDecisionTableParser implements Parser<ScriptDecisionTable> {
 	private RowParser rowParser;
 	private ColumnParser columnParser;
 	private ScriptCellParser scriptCellParser;
-	public ScriptDecisionTable parse(Element element) {
+	public ScriptDecisionTable parse(Element element,boolean withPermission) {
 		ScriptDecisionTable table =new ScriptDecisionTable();
 		for(Object obj:element.elements()){
 			if(obj==null || !(obj instanceof Element)){
@@ -39,11 +39,11 @@ public class ScriptDecisionTableParser implements Parser<ScriptDecisionTable> {
 			Element ele=(Element)obj;
 			String name=ele.getName();
 			if(rowParser.support(name)){
-				table.addRow(rowParser.parse(ele));
+				table.addRow(rowParser.parse(ele,withPermission));
 			}else if(columnParser.support(name)){
-				table.addColumn(columnParser.parse(ele));
+				table.addColumn(columnParser.parse(ele,withPermission));
 			}else if(scriptCellParser.support(name)){
-				table.addCell(scriptCellParser.parse(ele));
+				table.addCell(scriptCellParser.parse(ele,withPermission));
 			}if(name.equals("import-variable-library")){
 				table.addLibrary(new Library(ele.attributeValue("path"),null,LibraryType.Variable));
 			}else if(name.equals("import-constant-library")){