public final class SpikingRule extends AbstractRule
Modifier and Type | Method and Description |
---|---|
boolean |
allowBudding(SpikingMembrane membrane,
SpikingMembraneStructure structure) |
boolean |
allowDivision(SpikingMembrane membrane,
SpikingMembraneStructure structure) |
boolean |
allowFiring(SpikingMembrane membrane) |
boolean |
allowForgetting(SpikingMembrane membrane) |
static SpikingRule |
buildRule(LeftHandRule lhr,
RightHandRule rhr,
java.lang.String regExp,
long delay,
java.lang.String type,
boolean computeEfficiencyAtributes) |
static SpikingRule |
buildRule(java.lang.String leftLabel,
java.lang.String lObject,
long left,
java.lang.String rObject,
long right,
java.lang.String regExp,
long delay,
boolean computeEfficiencyAttributes) |
static SpikingRule |
buildRule(java.lang.String leftLabel,
java.lang.String rightLabel1,
java.lang.String rightLabel2,
java.lang.String type,
java.lang.String regExp,
boolean computeEfficiencyAttributes) |
boolean |
canBeBudding(SpikingMembrane membrane,
SpikingMembraneStructure structure) |
boolean |
canBeDivision(SpikingMembrane membrane,
SpikingMembraneStructure structure) |
boolean |
canBeExecuted(SpikingMembrane membrane,
SpikingMembraneStructure structure) |
boolean |
canBeFired(SpikingMembrane membrane) |
boolean |
canBeForgotten(SpikingMembrane membrane) |
long |
countExecutions(ChangeableMembrane membrane)
Counts the number of possible executions of the current rule on a
membrane
|
boolean |
dissolves()
Gets if the rule dissolves the membrane which is applied to
|
boolean |
equals(java.lang.Object obj) |
boolean |
executeSafeBuddingDivisionPhaseOne(ChangeableMembrane membrane,
Configuration currentConfig,
java.util.ArrayList<SpikingMembrane> buddyList,
java.util.ArrayList<Pair<SpikingMembrane,SpikingMembrane>> divisionList) |
static boolean |
executeSafeBuddingDivisionPhaseTwo(ChangeableMembrane membrane1,
ChangeableMembrane membrane2,
Configuration currentConfig,
boolean isBudding) |
static boolean |
executeSafeInputSpiking(ChangeableMembrane membrane,
long spikes) |
boolean |
executeSafeSpiking(ChangeableMembrane membrane,
Configuration currentConfig) |
long |
getDelay() |
long |
getHandRuleSpikingStringSize(HandRule r) |
java.lang.String |
getLeftHandRuleSpikingString() |
long |
getLeftHandRuleSpikingStringSize() |
java.util.Set<java.lang.String> |
getObjects()
Gets all different objects within the rule
|
java.util.regex.Pattern |
getRegExp() |
long |
getRightHandRuleSpikingStringSize() |
int |
hashCode() |
boolean |
hasNewMembranes()
Reports if the cell-like rule creates new membranes when executed
|
boolean |
isBuddingRule() |
boolean |
isDivisionRule() |
boolean |
isFiringRule() |
boolean |
isForgettingRule() |
java.lang.String |
toString() |
execute, execute, getLeftHandRule, getRightHandRule, getRuleId, isExecutable, setRuleId
public static SpikingRule buildRule(LeftHandRule lhr, RightHandRule rhr, java.lang.String regExp, long delay, java.lang.String type, boolean computeEfficiencyAtributes)
public static SpikingRule buildRule(java.lang.String leftLabel, java.lang.String lObject, long left, java.lang.String rObject, long right, java.lang.String regExp, long delay, boolean computeEfficiencyAttributes)
public static SpikingRule buildRule(java.lang.String leftLabel, java.lang.String rightLabel1, java.lang.String rightLabel2, java.lang.String type, java.lang.String regExp, boolean computeEfficiencyAttributes)
public boolean isFiringRule()
public boolean isForgettingRule()
public boolean isBuddingRule()
public boolean isDivisionRule()
public boolean allowFiring(SpikingMembrane membrane)
public boolean allowForgetting(SpikingMembrane membrane)
public boolean allowBudding(SpikingMembrane membrane, SpikingMembraneStructure structure)
public boolean allowDivision(SpikingMembrane membrane, SpikingMembraneStructure structure)
public java.lang.String getLeftHandRuleSpikingString()
public long getLeftHandRuleSpikingStringSize()
public long getRightHandRuleSpikingStringSize()
public long getHandRuleSpikingStringSize(HandRule r)
public boolean canBeFired(SpikingMembrane membrane)
public boolean canBeForgotten(SpikingMembrane membrane)
public boolean canBeBudding(SpikingMembrane membrane, SpikingMembraneStructure structure)
public boolean canBeDivision(SpikingMembrane membrane, SpikingMembraneStructure structure)
public boolean canBeExecuted(SpikingMembrane membrane, SpikingMembraneStructure structure)
public boolean executeSafeSpiking(ChangeableMembrane membrane, Configuration currentConfig)
public boolean executeSafeBuddingDivisionPhaseOne(ChangeableMembrane membrane, Configuration currentConfig, java.util.ArrayList<SpikingMembrane> buddyList, java.util.ArrayList<Pair<SpikingMembrane,SpikingMembrane>> divisionList)
public static boolean executeSafeBuddingDivisionPhaseTwo(ChangeableMembrane membrane1, ChangeableMembrane membrane2, Configuration currentConfig, boolean isBudding)
public static boolean executeSafeInputSpiking(ChangeableMembrane membrane, long spikes)
public java.lang.String toString()
toString
in class AbstractRule
Object.toString()
public int hashCode()
hashCode
in class AbstractRule
Object.hashCode()
public boolean equals(java.lang.Object obj)
equals
in class AbstractRule
Object.equals(java.lang.Object)
public boolean dissolves()
AbstractRule
dissolves
in interface IRule
dissolves
in class AbstractRule
public java.util.Set<java.lang.String> getObjects()
AbstractRule
getObjects
in interface IRule
getObjects
in class AbstractRule
public boolean hasNewMembranes()
AbstractRule
hasNewMembranes
in interface IRule
hasNewMembranes
in class AbstractRule
public java.util.regex.Pattern getRegExp()
public long getDelay()
public long countExecutions(ChangeableMembrane membrane)
IRule
membrane
- the membrane where the executions will be counted