/* * TeleStax, Open Source Cloud Communications Copyright 2012. * and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.mobicents.protocols.ss7.m3ua.impl.parameter; import org.mobicents.protocols.ss7.m3ua.parameter.ASPIdentifier; import org.mobicents.protocols.ss7.m3ua.parameter.AffectedPointCode; import org.mobicents.protocols.ss7.m3ua.parameter.ConcernedDPC; import org.mobicents.protocols.ss7.m3ua.parameter.CongestedIndication; import org.mobicents.protocols.ss7.m3ua.parameter.CongestedIndication.CongestionLevel; import org.mobicents.protocols.ss7.m3ua.parameter.CorrelationId; import org.mobicents.protocols.ss7.m3ua.parameter.DeregistrationResult; import org.mobicents.protocols.ss7.m3ua.parameter.DeregistrationStatus; import org.mobicents.protocols.ss7.m3ua.parameter.DestinationPointCode; import org.mobicents.protocols.ss7.m3ua.parameter.DiagnosticInfo; import org.mobicents.protocols.ss7.m3ua.parameter.ErrorCode; import org.mobicents.protocols.ss7.m3ua.parameter.HeartbeatData; import org.mobicents.protocols.ss7.m3ua.parameter.InfoString; import org.mobicents.protocols.ss7.m3ua.parameter.LocalRKIdentifier; import org.mobicents.protocols.ss7.m3ua.parameter.NetworkAppearance; import org.mobicents.protocols.ss7.m3ua.parameter.OPCList; import org.mobicents.protocols.ss7.m3ua.parameter.Parameter; import org.mobicents.protocols.ss7.m3ua.parameter.ParameterFactory; import org.mobicents.protocols.ss7.m3ua.parameter.ProtocolData; import org.mobicents.protocols.ss7.m3ua.parameter.RegistrationResult; import org.mobicents.protocols.ss7.m3ua.parameter.RegistrationStatus; import org.mobicents.protocols.ss7.m3ua.parameter.RoutingContext; import org.mobicents.protocols.ss7.m3ua.parameter.RoutingKey; import org.mobicents.protocols.ss7.m3ua.parameter.ServiceIndicators; import org.mobicents.protocols.ss7.m3ua.parameter.Status; import org.mobicents.protocols.ss7.m3ua.parameter.TrafficModeType; import org.mobicents.protocols.ss7.m3ua.parameter.UserCause; /** * * @author kulikov */ public class ParameterFactoryImpl implements ParameterFactory { public ProtocolData createProtocolData(int opc, int dpc, int si, int ni, int mp, int sls, byte[] data) { return new ProtocolDataImpl(opc, dpc, si, ni, mp, sls, data); } public ProtocolData createProtocolData(byte[] payloadData) { ProtocolDataImpl p = new ProtocolDataImpl(payloadData); return p; } public NetworkAppearance createNetworkAppearance(long netApp) { return new NetworkAppearanceImpl(netApp); } public RoutingContext createRoutingContext(long[] routCntx) { return new RoutingContextImpl(routCntx); } public CorrelationId createCorrelationId(long corrId) { return new CorrelationIdImpl(corrId); } public AffectedPointCode createAffectedPointCode(int[] pc, short[] mask) { return new AffectedPointCodeImpl(pc, mask); } public DestinationPointCode createDestinationPointCode(int pc, short mask) { return new DestinationPointCodeImpl(pc, mask); } public InfoString createInfoString(String string) { return new InfoStringImpl(string); } public ConcernedDPC createConcernedDPC(int pointCode) { return new ConcernedDPCImpl(pointCode); } public CongestedIndication createCongestedIndication(CongestionLevel level) { return new CongestedIndicationImpl(level); } public UserCause createUserCause(int user, int cause) { return new UserCauseImpl(user, cause); } public ASPIdentifier createASPIdentifier(long aspId) { return new ASPIdentifierImpl(aspId); } public LocalRKIdentifier createLocalRKIdentifier(long id) { return new LocalRKIdentifierImpl(id); } public OPCList createOPCList(int[] pc, short[] mask) { return new OPCListImpl(pc, mask); } public ServiceIndicators createServiceIndicators(short[] inds) { return new ServiceIndicatorsImpl(inds); } public TrafficModeType createTrafficModeType(int mode) { return new TrafficModeTypeImpl(mode); } public RegistrationStatus createRegistrationStatus(int status) { return new RegistrationStatusImpl(status); } public DiagnosticInfo createDiagnosticInfo(String info) { return new DiagnosticInfoImpl(info); } public RoutingKey createRoutingKey(LocalRKIdentifier localRkId, RoutingContext rc, TrafficModeType trafMdTy, NetworkAppearance netApp, DestinationPointCode[] dpc, ServiceIndicators[] servInds, OPCList[] opcList) { return new RoutingKeyImpl(localRkId, rc, trafMdTy, netApp, dpc, servInds, opcList); } public RegistrationResult createRegistrationResult(LocalRKIdentifier localRkId, RegistrationStatus status, RoutingContext rc) { return new RegistrationResultImpl(localRkId, status, rc); } public DeregistrationStatus createDeregistrationStatus(int status) { return new DeregistrationStatusImpl(status); } public DeregistrationResult createDeregistrationResult(RoutingContext rc, DeregistrationStatus status) { return new DeregistrationResultImpl(rc, status); } public ErrorCode createErrorCode(int code) { return new ErrorCodeImpl(code); } public Status createStatus(int type, int info) { return new StatusImpl(type, info); } public HeartbeatData createHeartbeatData(byte[] data) { return new HeartbeatDataImpl(data); } public Parameter createParameter(int tag, byte[] value) { ParameterImpl p = null; switch (tag) { case ParameterImpl.Protocol_Data: p = new ProtocolDataImpl(value); break; case ParameterImpl.Traffic_Mode_Type: p = new TrafficModeTypeImpl(value); break; case ParameterImpl.Network_Appearance: p = new NetworkAppearanceImpl(value); break; case ParameterImpl.Routing_Context: p = new RoutingContextImpl(value); break; case ParameterImpl.Correlation_ID: p = new CorrelationIdImpl(value); break; case ParameterImpl.Affected_Point_Code: p = new AffectedPointCodeImpl(value); break; case ParameterImpl.Originating_Point_Code_List: p = new OPCListImpl(value); break; case ParameterImpl.Destination_Point_Code: p = new DestinationPointCodeImpl(value); break; case ParameterImpl.INFO_String: p = new InfoStringImpl(value); break; case ParameterImpl.Concerned_Destination: p = new ConcernedDPCImpl(value); break; case ParameterImpl.Congestion_Indications: p = new CongestedIndicationImpl(value); break; case ParameterImpl.User_Cause: p = new UserCauseImpl(value); break; case ParameterImpl.ASP_Identifier: p = new ASPIdentifierImpl(value); break; case ParameterImpl.Local_Routing_Key_Identifier: p = new LocalRKIdentifierImpl(value); break; case ParameterImpl.Service_Indicators: p = new ServiceIndicatorsImpl(value); break; case ParameterImpl.Routing_Key: p = new RoutingKeyImpl(value); break; case ParameterImpl.Registration_Status: p = new RegistrationStatusImpl(value); break; case ParameterImpl.Registration_Result: p = new RegistrationResultImpl(value); break; case ParameterImpl.Deregistration_Status: p = new DeregistrationStatusImpl(value); break; case ParameterImpl.Deregistration_Result: p = new DeregistrationResultImpl(value); break; case ParameterImpl.Diagnostic_Information: p = new DiagnosticInfoImpl(value); break; case ParameterImpl.Error_Code: p = new ErrorCodeImpl(value); break; case ParameterImpl.Status: p = new StatusImpl(value); break; case ParameterImpl.Heartbeat_Data: p = new HeartbeatDataImpl(value); break; default: p = new UnknownParameterImpl(tag, value.length, value); break; } return p; } }