Refactoring
This commit is contained in:
		@@ -344,14 +344,24 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
 | 
			
		||||
	public boolean getsGreenLight(Context context)
 | 
			
		||||
	{
 | 
			
		||||
		return isRuleActive() && applies(context) && hasNotAppliedSinceLastExecution();
 | 
			
		||||
		if(applies(context))
 | 
			
		||||
		{
 | 
			
		||||
			if(hasNotAppliedSinceLastExecution())
 | 
			
		||||
				return true;
 | 
			
		||||
			else
 | 
			
		||||
				Miscellaneous.logEvent("i", "getsGreenLight()", "Rule " + getName() + " has not flipped since its last execution.", 4);
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
			Miscellaneous.logEvent("i", "getsGreenLight()", "Rule " + getName() + " does not apply.", 4);
 | 
			
		||||
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public boolean applies(Context context)
 | 
			
		||||
	{
 | 
			
		||||
		if(AutomationService.getInstance() == null)
 | 
			
		||||
		{
 | 
			
		||||
			Miscellaneous.logEvent("i", "RuleCheck", "Automation service not running. Rule cannot apply.", 3);
 | 
			
		||||
			Miscellaneous.logEvent("i", "RuleCheck", "Automation service not running. Rule " + getName() + " cannot apply.", 3);
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
@@ -476,6 +486,7 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
				{
 | 
			
		||||
					Rule.ruleRunHistory.add(0, Rule.this);		// add at beginning for better visualization
 | 
			
		||||
					Rule.lastActivatedRuleActivationTime = new Date();
 | 
			
		||||
 | 
			
		||||
					while(ruleRunHistory.size() > Settings.rulesThatHaveBeenRanHistorySize)
 | 
			
		||||
						ruleRunHistory.remove(ruleRunHistory.size()-1);
 | 
			
		||||
					String history = "";
 | 
			
		||||
@@ -505,15 +516,27 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
	public void activate(AutomationService automationService, boolean force)
 | 
			
		||||
	{
 | 
			
		||||
		ActivateRuleTask task = new ActivateRuleTask();
 | 
			
		||||
		
 | 
			
		||||
//		if(Settings.startNewThreadForRuleActivation)
 | 
			
		||||
			task.execute(automationService, force);
 | 
			
		||||
//		else
 | 
			
		||||
//		{
 | 
			
		||||
//			task.activateInternally(automationService, force);
 | 
			
		||||
//			AutomationService.updateNotification();
 | 
			
		||||
//			ActivityMainScreen.updateMainScreen();
 | 
			
		||||
//		}		
 | 
			
		||||
		task.execute(automationService, force);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidates(Trigger.Trigger_Enum triggerType)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == triggerType)
 | 
			
		||||
				{
 | 
			
		||||
					ruleCandidates.add(oneRule);
 | 
			
		||||
					break innerloop; // we don't need to check the other triggers in the same rule
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByPoi(PointOfInterest searchPoi, boolean triggerParameter)
 | 
			
		||||
@@ -557,7 +580,7 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByTimeFrame(TimeFrame searchTimeFrame, boolean triggerParameter)
 | 
			
		||||
	/*public static ArrayList<Rule> findRuleCandidatesByTimeFrame(TimeFrame searchTimeFrame, boolean triggerParameter)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
@@ -578,8 +601,9 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByTime(Time searchTime)
 | 
			
		||||
	}*/
 | 
			
		||||
 | 
			
		||||
	/*public static ArrayList<Rule> findRuleCandidatesByTime(Time searchTime)
 | 
			
		||||
	{
 | 
			
		||||
		Miscellaneous.logEvent("i", "RuleSearch", "Searching for rules with TimeFrame with time " + searchTime.toString() + ". RuleCollection-Size: " + String.valueOf(ruleCollection.size()), 3);;
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
@@ -598,7 +622,7 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
					
 | 
			
		||||
					if(oneTrigger.getTimeFrame().getTriggerTimeStart().getTime() > oneTrigger.getTimeFrame().getTriggerTimeStop().getTime())
 | 
			
		||||
					{
 | 
			
		||||
						Miscellaneous.logEvent("i", "Timeframe search", "Rule goes over midnight.", 5);
 | 
			
		||||
						Miscellaneous.logEvent("i", "Timeframe search", "Rule (" + oneRule.getName() + ") stretches over midnight.", 5);
 | 
			
		||||
						if(oneTrigger.getTimeFrame().getTriggerTimeStart().getTime() <= searchTime.getTime() || searchTime.getTime() <= oneTrigger.getTimeFrame().getTriggerTimeStop().getTime()+20000) //add 20 seconds because of delay
 | 
			
		||||
						{
 | 
			
		||||
							ruleCandidates.add(oneRule);
 | 
			
		||||
@@ -607,7 +631,7 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
					}
 | 
			
		||||
					else if(oneTrigger.getTimeFrame().getTriggerTimeStart().getTime() <= searchTime.getTime() && searchTime.getTime() <= oneTrigger.getTimeFrame().getTriggerTimeStop().getTime()+20000) //add 20 seconds because of delay
 | 
			
		||||
					{
 | 
			
		||||
						Miscellaneous.logEvent("i", "RuleSearch", "Rule found with TimeFrame with time " + searchTime.toString(), 3);
 | 
			
		||||
						Miscellaneous.logEvent("i", "RuleSearch", "Rule found (" + oneRule.getName() + ") with TimeFrame with time " + searchTime.toString(), 3);
 | 
			
		||||
						ruleCandidates.add(oneRule);
 | 
			
		||||
						break innerloop; //if the poi is found we don't need to search the other triggers in the same rule
 | 
			
		||||
					}
 | 
			
		||||
@@ -618,29 +642,9 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
		Miscellaneous.logEvent("i", "RuleSearch", String.valueOf(ruleCandidates.size()) + " Rule(s) found with TimeFrame with time " + searchTime.toString(), 3);
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	}*/
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByTimeFrame()
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.timeFrame)
 | 
			
		||||
				{
 | 
			
		||||
					ruleCandidates.add(oneRule);
 | 
			
		||||
					break innerloop; //if the poi is found we don't need to search the other triggers in the same rule
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByCharging(boolean triggerParameter)
 | 
			
		||||
	/*public static ArrayList<Rule> findRuleCandidatesByCharging(boolean triggerParameter)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
@@ -661,9 +665,9 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	}*/
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByUsbHost(boolean triggerParameter)
 | 
			
		||||
	/*public static ArrayList<Rule> findRuleCandidatesByUsbHost(boolean triggerParameter)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
@@ -684,147 +688,9 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	}*/
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByBatteryLevel()
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.batteryLevel)
 | 
			
		||||
				{
 | 
			
		||||
//					if(oneTrigger.getTriggerParameter() == triggerParameter)
 | 
			
		||||
//					{
 | 
			
		||||
						ruleCandidates.add(oneRule);
 | 
			
		||||
						break innerloop; //if the poi is found we don't need to search the other triggers in the same rule
 | 
			
		||||
//					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesBySpeed()
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.speed)
 | 
			
		||||
				{
 | 
			
		||||
//					if(oneTrigger.getTriggerParameter() == triggerParameter)
 | 
			
		||||
//					{
 | 
			
		||||
						ruleCandidates.add(oneRule);
 | 
			
		||||
						break innerloop; //if the poi is found we don't need to search the other triggers in the same rule
 | 
			
		||||
//					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByNoiseLevel()
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.noiseLevel)
 | 
			
		||||
				{
 | 
			
		||||
//					if(oneTrigger.getTriggerParameter() == triggerParameter)
 | 
			
		||||
//					{
 | 
			
		||||
						ruleCandidates.add(oneRule);
 | 
			
		||||
						break innerloop; //if the poi is found we don't need to search the other triggers in the same rule
 | 
			
		||||
//					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByWifiConnection()
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.wifiConnection)
 | 
			
		||||
				{
 | 
			
		||||
//					if(oneTrigger.getTriggerParameter() == triggerParameter)
 | 
			
		||||
//					{
 | 
			
		||||
						ruleCandidates.add(oneRule);
 | 
			
		||||
						break innerloop; //we don't need to search the other triggers in the same rule
 | 
			
		||||
//					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByBluetoothConnection()
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.bluetoothConnection)
 | 
			
		||||
				{
 | 
			
		||||
//					if(oneTrigger.getTriggerParameter() == triggerParameter)
 | 
			
		||||
//					{
 | 
			
		||||
						ruleCandidates.add(oneRule);
 | 
			
		||||
						break innerloop; //we don't need to search the other triggers in the same rule
 | 
			
		||||
//					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByProcess()
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.process_started_stopped)
 | 
			
		||||
				{
 | 
			
		||||
//					if(oneTrigger.getTriggerParameter() == triggerParameter)
 | 
			
		||||
//					{
 | 
			
		||||
						ruleCandidates.add(oneRule);
 | 
			
		||||
						break innerloop; //we don't need to search the other triggers in the same rule
 | 
			
		||||
//					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByAirplaneMode(boolean triggerParameter)
 | 
			
		||||
	/*public static ArrayList<Rule> findRuleCandidatesByAirplaneMode(boolean triggerParameter)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
@@ -845,9 +711,9 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	}*/
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByRoaming(boolean triggerParameter)
 | 
			
		||||
	/*public static ArrayList<Rule> findRuleCandidatesByRoaming(boolean triggerParameter)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
@@ -868,9 +734,9 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	}*/
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByPhoneCall(String direction)
 | 
			
		||||
	/*public static ArrayList<Rule> findRuleCandidatesByPhoneCall(String direction)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
 | 
			
		||||
@@ -892,73 +758,7 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByNfc()
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.nfcTag)
 | 
			
		||||
				{
 | 
			
		||||
//					if(oneTrigger.getTriggerParameter() == triggerParameter)
 | 
			
		||||
//					{
 | 
			
		||||
						ruleCandidates.add(oneRule);
 | 
			
		||||
						break innerloop; //we don't need to search the other triggers in the same rule
 | 
			
		||||
//					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidates(Trigger.Trigger_Enum triggerType)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == triggerType)
 | 
			
		||||
				{
 | 
			
		||||
					ruleCandidates.add(oneRule);
 | 
			
		||||
					break innerloop; //we don't need to search the other triggers in the same rule
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByActivityDetection()
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.activityDetection)
 | 
			
		||||
				{
 | 
			
		||||
//					if(oneTrigger.getTriggerParameter() == triggerParameter)
 | 
			
		||||
//					{
 | 
			
		||||
						ruleCandidates.add(oneRule);
 | 
			
		||||
						break innerloop; //we don't need to search the other triggers in the same rule
 | 
			
		||||
//					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	}*/
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByPoi(PointOfInterest searchPoi)
 | 
			
		||||
	{
 | 
			
		||||
@@ -983,7 +783,7 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByHeadphoneJack(boolean triggerParameter)
 | 
			
		||||
	/*public static ArrayList<Rule> findRuleCandidatesByHeadphoneJack(boolean triggerParameter)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
@@ -1004,7 +804,7 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	}*/
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByProfile(Profile profile)
 | 
			
		||||
	{
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user