/** * ESUP-Portail Helpdesk - Copyright (c) 2004-2009 ESUP-Portail consortium. */ package org.esupportail.helpdesk.domain.departmentSelection.conditions; import java.net.InetAddress; import java.util.List; import org.esupportail.helpdesk.domain.DomainService; import org.esupportail.helpdesk.domain.beans.User; import org.esupportail.helpdesk.domain.departmentSelection.DepartmentSelectionCompileError; import org.esupportail.helpdesk.domain.departmentSelection.UserDefinedCondition; import org.esupportail.helpdesk.domain.departmentSelection.UserDefinedConditions; /** * A named condition. */ public class NamedCondition extends AbstractCondition { /** * The serialization id. */ private static final long serialVersionUID = 7476576501336956133L; /** * The name of the condition. */ private String name; /** * the (real) user-defined condition. */ private UserDefinedCondition userDefinedCondition; /** * Empty constructor (for Digester). */ public NamedCondition() { super(); } /** * @see org.esupportail.helpdesk.domain.departmentSelection.conditions.AbstractCondition#isMatchedInternal( * org.esupportail.helpdesk.domain.DomainService, org.esupportail.helpdesk.domain.beans.User, * java.net.InetAddress) */ @Override protected boolean isMatchedInternal( final DomainService domainService, final User user, final InetAddress client) { return userDefinedCondition.isMatched(domainService, user, client); } /** * @see org.esupportail.helpdesk.domain.departmentSelection.conditions.AbstractCondition#checkInternal() */ @Override public void checkInternal() throws DepartmentSelectionCompileError { if (name == null) { throw new DepartmentSelectionCompileError( "<named-condition> tags should have a 'name' attribute"); } } /** * @see java.lang.Object#toString() */ @Override public String toString() { return "<named-condition name=\"" + name + "\" />"; } /** * @see org.esupportail.helpdesk.domain.departmentSelection.conditions.AbstractCondition#compileInternal( * org.esupportail.helpdesk.domain.departmentSelection.UserDefinedConditions) */ @Override public void compileInternal( final UserDefinedConditions userDefinedConditions) throws DepartmentSelectionCompileError { userDefinedCondition = userDefinedConditions.getUserDefinedCondition(name); userDefinedCondition.setUsed(); } /** * @see org.esupportail.helpdesk.domain.departmentSelection.conditions.Condition * #refactorNamedConditions(java.lang.String, java.lang.String) */ @Override public void refactorNamedConditions( final String oldName, final String newName) { if (oldName.equals(name)) { name = newName; } } /** * @param name The name to set. */ public void setName(final String name) { this.name = name; } /** * @see org.esupportail.helpdesk.domain.departmentSelection.conditions.Condition#getSubConditions() */ @Override public List<Condition> getSubConditions() { return null; } /** * @see org.esupportail.helpdesk.domain.departmentSelection.conditions.Condition#getNodeType() */ @Override public String getNodeType() { return "named"; } /** * @return the userDefinedCondition */ public UserDefinedCondition getUserDefinedCondition() { return userDefinedCondition; } /** * @param userDefinedCondition the userDefinedCondition to set */ public void setUserDefinedCondition(final UserDefinedCondition userDefinedCondition) { this.userDefinedCondition = userDefinedCondition; } /** * @return the name */ public String getName() { return name; } }