ruper2/src/java/core/org/krysalis/ruper2/util/select/logic AndSelector.java,NONE,1.1 NotSelector.java,NONE,1.1 OrSelector.java,NONE,1.1 BooleanSelector.java,NONE,1.1
| Newsgroups | gmane.comp.krysalis.metamorphosis.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/metamorphosis/ruper2/src/java/core/org/krysalis/ruper2/util/select/logic
In directory sc8-pr-cvs1:/tmp/cvs-serv30481/src/java/core/org/krysalis/ruper2/util/select/logic
Added Files:
AndSelector.java NotSelector.java OrSelector.java
BooleanSelector.java
Log Message:
Avoid clash with existing Ruper...
--- NEW FILE: AndSelector.java ---
package org.krysalis.ruper2.util.select.logic;
import org.krysalis.ruper2.util.select.CompositeSelector;
import org.krysalis.ruper2.util.select.Selector;
import java.util.Iterator;
/**
* Composite selector that selects by an AND operation.
* @author Ben Sommerville
*/
public class AndSelector extends CompositeSelector {
public boolean select(Object o) throws Exception {
boolean isSelected = true;
Iterator childIter = childIterator();
while (childIter.hasNext() && isSelected) {
Selector child = (Selector) childIter.next();
isSelected = child.select(o);
}
return isSelected;
}
}
--- NEW FILE: NotSelector.java ---
package org.krysalis.ruper2.util.select.logic;
import org.krysalis.ruper2.util.select.Selector;
/**
* Selector that returns the inverse of the selector that it contains
* @author Ben Sommerville
*/
public class NotSelector implements Selector {
// Initialise to Boolean true so that
// a) We don't have to check for nulls
// b) The default select will return false
private Selector m_child = BooleanSelector.TRUE;
/**
* Constructor
*/
public NotSelector() {
}
/**
* Constructor
* @param selector The selector to invert
*/
public NotSelector( Selector selector) {
m_child = selector;
}
public boolean select(Object o) throws Exception {
return !m_child.select(o);
}
/**
* Set the selector that will be inverted
* @param selector Selector to be inverted
*/
public void setSelector(Selector selector) {
if( selector == null ) {
throw new IllegalArgumentException("Can't set null selector");
}
m_child = selector;
}
public int hashCode() {
int notHash = getClass().hashCode();
return notHash * 67 + m_child.hashCode();
}
public boolean equals(Object obj) {
boolean isEqual = false;
if( obj instanceof NotSelector ) {
NotSelector rhs = (NotSelector) obj;
isEqual = m_child.equals( rhs.m_child );
}
return isEqual;
}
}
--- NEW FILE: OrSelector.java ---
package org.krysalis.ruper2.util.select.logic;
import org.krysalis.ruper2.util.select.CompositeSelector;
import org.krysalis.ruper2.util.select.Selector;
import java.util.Iterator;
/**
* Composite selector that selects by an OR operation.
*
* @author Ben Sommerville
*/
public class OrSelector extends CompositeSelector{
public boolean select(Object o) throws Exception {
boolean isSelected = true;
if( hasChildren() ) {
Iterator childIter = childIterator();
isSelected = false;
while (childIter.hasNext() && !isSelected ) {
Selector child = (Selector) childIter.next();
isSelected = child.select(o);
}
}
return isSelected;
}
}
--- NEW FILE: BooleanSelector.java ---
package org.krysalis.ruper2.util.select.logic;
import org.krysalis.ruper2.util.select.Selector;
/**
* Selector that always returns the same result.
* @author Ben Sommerville
*/
public class BooleanSelector implements Selector {
private boolean m_result = false;
/** Selector that always returns true */
public final static Selector TRUE = new BooleanSelector( true );
/** Selector that always returns false */
public final static Selector FALSE = new BooleanSelector( false );
/**
* Constructor
* @param result Result that select should return
*/
public BooleanSelector(boolean result) {
m_result = result;
}
public boolean select(Object o) throws Exception {
return m_result;
}
public boolean equals(Object obj) {
boolean isEqual = false;
if( obj instanceof BooleanSelector ) {
BooleanSelector rhs = (BooleanSelector) obj;
if( this.m_result == rhs.m_result ) {
isEqual = true;
}
}
return isEqual;
}
public int hashCode() {
// BPS: Should make these hashes prime????
if( m_result ) {
return 15935;
} else {
return 17932;
}
}
}
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf