// ============================================================================
//
// Copyright (C) 2006-2016 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.mdm.repository.core.hash.routingrule;
import org.talend.mdm.commmon.util.hash.ArrayCollectionHashValueCalculator;
import org.talend.mdm.commmon.util.hash.IHashValueCalculator;
import org.talend.mdm.commmon.util.hash.impl.RoutingRuleHVCalculator;
import org.talend.mdm.repository.model.mdmserverobject.WSRoutingRuleE;
import org.talend.mdm.repository.model.mdmserverobject.WSRoutingRuleExpressionE;
import org.talend.mdm.repository.model.mdmserverobject.WSRoutingRuleOperatorE;
/**
* DOC hbhong class global comment. Detailled comment
*/
public class EObjRoutingRuleHVCalculator extends RoutingRuleHVCalculator {
/**
* 1- name; 2- description; 3- synchronous; 4- concept; 5- serviceJNDI; 6- parameters; 7- condition; 8- deactive; 9-
* WSRoutingRuleExpressionE
*/
@Override
public Object[] getPropertys(Object obj) {
if (obj == null || !(obj instanceof WSRoutingRuleE)) {
throw new IllegalArgumentException();
}
WSRoutingRuleE rule = (WSRoutingRuleE) obj;
return new Object[] { rule.getName(), rule.getDescription(), rule.isSynchronous(), rule.getConcept(),
rule.getServiceJNDI(), rule.getParameters(), rule.getCondition(), rule.isDeactive(),
rule.getWsRoutingRuleExpressions() };
}
class EobjRoutinRuleExpressionHVCalculator extends RoutingRuleExpressionHVCalculator {
// 1-name 2-xpath 3-value 4-wsOperator
@Override
public Object[] getPropertys(Object obj) {
if (obj == null || !(obj instanceof WSRoutingRuleExpressionE)) {
throw new IllegalArgumentException();
}
WSRoutingRuleExpressionE expression = (WSRoutingRuleExpressionE) obj;
return new Object[] { expression.getName(), expression.getXpath(), expression.getValue(), expression.getWsOperator() };
}
};
IHashValueCalculator routinRuleArrayExpressionHVCalculator;
@Override
protected IHashValueCalculator getRoutinRuleExpressionHVCalculator() {
if (routinRuleArrayExpressionHVCalculator == null) {
routinRuleArrayExpressionHVCalculator = new ArrayCollectionHashValueCalculator(
new EobjRoutinRuleExpressionHVCalculator());
}
return routinRuleArrayExpressionHVCalculator;
}
protected IHashValueCalculator routingRuleOperatorHVCalculator;
class EobjRoutingRuleOperatorHVCalculator extends RoutingRuleOperatorHVCalculator {
// 1 value
@Override
public Object[] getPropertys(Object obj) {
if (obj == null || !(obj instanceof WSRoutingRuleOperatorE)) {
throw new IllegalArgumentException();
}
WSRoutingRuleOperatorE operator = (WSRoutingRuleOperatorE) obj;
return new Object[] { operator.getValue() };
}
};
@Override
protected IHashValueCalculator getRoutingRuleOperatorHVCalculator() {
if (routingRuleOperatorHVCalculator == null) {
routingRuleOperatorHVCalculator = new EobjRoutingRuleOperatorHVCalculator();
}
return routingRuleOperatorHVCalculator;
}
}