/******************************************************************************* * Copyright © 2006, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation * *******************************************************************************/ package org.eclipse.edt.javart.resources.egldd; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class Binding { public static int EGLBINDING = 1; public static int WEBBINDING = 2; public static int NATIVEBINDING = 3; public static int RESTBINDING = 4; public static int SQLDATABASEBINDING = 5; public static int DEDICATEDBINDING = 6; public static String BINDING_SERVICE_LOCAL = " edt.binding.local"; public static String BINDING_SERVICE_REST = " edt.binding.rest"; public static String BINDING_SERVICE_DEDICATED = "edt.binding.dedicated"; //TODO add support for this public static String BINDING_DB_SQL = "edt.binding.sql"; public static String SOAP11VERSION = "SOAP-1.1"; public static String SOAP12VERSION = "SOAP-1.2"; private String name; private String type; private String uri; private boolean useURI; protected Map<String, Parameter> parameters = new HashMap<String, Parameter>(); public Binding(Binding binding) { this(binding.getName(), binding.getType(), binding.getUri(), binding.isUseURI()); parameters = binding.parameters; } public Binding(String name, String type, String uri, String useURI) { this.name = name; this.type = type; this.uri = uri; this.useURI = useURI != null && useURI.equalsIgnoreCase("true"); } Binding(String name, String type, String uri, boolean useURI) { this.name = name; this.type = type; this.uri = uri; this.useURI = useURI; } public Parameter getParameter(String name) { return parameters.get(name.toLowerCase()); } public Collection<Parameter> getParameters() { return parameters.values(); } public void setParameters(Map<String, Parameter> newParams) { parameters = newParams; } public void addParameter(Parameter parameter) { this.parameters.put(parameter.getName().toLowerCase(), parameter); } public String getName() { return name; } public void setName( String name ) { this.name = name; } public String getType() { return type; } public String getUri() { return uri; } public void setUri(String uri) { this.uri = uri; } public boolean isUseURI() { return useURI; } public void setUseURI( boolean useURI) { this.useURI = useURI; } public boolean equals(Object o) { if (!(o instanceof Binding)) { return false; } Binding b = (Binding)o; if (useURI == b.useURI && getClass().equals(b.getClass()) && equal(name, b.name) && equal(type, b.type) && equal(uri, b.uri) && parameters.size() == b.parameters.size()) { Set<Entry<String, Parameter>> entrySet = b.parameters.entrySet(); for (Entry<String, Parameter> entry : parameters.entrySet()) { if (!entrySet.contains(entry)) { return false; } } return true; } return false; } public static boolean equal(String s1, String s2) { if (s1 == null) { return s2 == null; } return s1.equals(s2); } }