blob: b21a36f813a0e291de94f8f704708b2382fe5ef6 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2002-2005 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 - Initial API and implementation
*******************************************************************************/
package org.eclipse.wst.wsi.internal.core.util;
import java.util.TreeMap;
import java.util.Vector;
import org.eclipse.wst.wsi.internal.WSITestToolsPlugin;
import org.eclipse.wst.wsi.internal.core.profile.validator.BaseValidator;
/**
* This class ...
*
* @version 1.0.1
* @author Peter Brittenham (peterbr@us.ibm.com)
*/
public class EntryType
{
/**
* ReportArtifact type.
*/
private ArtifactType artifactType;
/**
* This type.
*/
private String typeName;
/**
* Entry types accessible by type name.
*/
protected static TreeMap entryTypeMap;
/**
* Entry type names accessible by artifact.
*/
protected static final TreeMap entryTypeNameMap = new TreeMap();
/**
* Envelope entry types.
*/
/** @deprecated -- use EnvelopeValidator.TYPE_ENVELOPE_REQUEST */
public static final String TYPE_ENVELOPE_REQUEST = "requestEnvelope";
/** @deprecated -- use EnvelopeValidator.TYPE_ENVELOPE_RESPONSE */
public static final String TYPE_ENVELOPE_RESPONSE = "responseEnvelope";
/** @deprecated -- use EnvelopeValidator.TYPE_ENVELOPE_ANYT */
public static final String TYPE_ENVELOPE_ANY = "anyEnvelope";
/**
* Message entry types.
*/
/** @deprecated -- use MessageValidator.TYPE_MESSAGE_REQUEST */
public static final String TYPE_MESSAGE_REQUEST = "requestMessage";
/** @deprecated -- use MessageValidator.TYPE_MESSAGE_RESPONSE */
public static final String TYPE_MESSAGE_RESPONSE = "responseMessage";
/** @deprecated -- use MessageValidator.TYPE_MESSAGE_ANY */
public static final String TYPE_MESSAGE_ANY = "anyMessage";
/**
* MIME entry types.
*/
/** @deprecated -- use MessageValidator.TYPE_MIME_PART */
public static final String TYPE_MIME_PART = "part";
/** @deprecated -- use MessageValidator.TYPE_MIME_ROOT_PART */
public static final String TYPE_MIME_ROOT_PART = "root-part";
/**
* Description entry types.
*/
/** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION_DEFINITIONS */
public static final String TYPE_DESCRIPTION_DEFINITIONS = "definitions";
/** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION_IMPORT */
public static final String TYPE_DESCRIPTION_IMPORT = "import";
/** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION_TYPES */
public static final String TYPE_DESCRIPTION_TYPES = "types";
/** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION_MESSAGE */
public static final String TYPE_DESCRIPTION_MESSAGE = "message";
/** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION_OPERATION */
public static final String TYPE_DESCRIPTION_OPERATION = "operation";
/** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION_PORTTYPE */
public static final String TYPE_DESCRIPTION_PORTTYPE = "portType";
/** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION_BINDING */
public static final String TYPE_DESCRIPTION_BINDING = "binding";
/** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION_PORT */
public static final String TYPE_DESCRIPTION_PORT = "port";
/**
* Discovery entry types.
*/
/** @deprecated -- use UDDIValidator.TYPE_DISCOVERY_BINDINGTEMPLATE */
public static final String TYPE_DISCOVERY_BINDINGTEMPLATE = "bindingTemplate";
/** @deprecated -- use UDDIValidator.TYPE_DISCOVERY_TMODEL */
public static final String TYPE_DISCOVERY_TMODEL = "tModel";
/**
* Envelope entry types.
*/
/** @deprecated -- use getEntryType(String typeName) to access EntryType. */
public static final EntryType ENTRY_TYPE_REQUESTENV = getEntryType(TYPE_ENVELOPE_REQUEST);
/** @deprecated -- use getEntryType(String typeName) to access EntryType. */
public static final EntryType ENTRY_TYPE_RESPONSEENV = getEntryType(TYPE_ENVELOPE_RESPONSE);
/**
* Message entry types.
*/
/** @deprecated -- use getEntryType(String typeName) to access EntryType. */
public static final EntryType ENTRY_TYPE_REQUEST = getEntryType(TYPE_MESSAGE_REQUEST);
/** @deprecated -- use getEntryType(String typeName) to access EntryType. */
public static final EntryType ENTRY_TYPE_RESPONSE = getEntryType(TYPE_MESSAGE_RESPONSE);
// public static final EntryType ENTRY_TYPE_ANYENTRY =
// new EntryType(ArtifactType.ARTIFACT_TYPE_MESSAGES, TYPE_MESSAGE_ANYENTRY);
/**
* Description entry types.
*/
/** @deprecated -- use getEntryType(String typeName) to access EntryType. */
public static final EntryType ENTRY_TYPE_DEFINITIONS = getEntryType(TYPE_DESCRIPTION_DEFINITIONS);
/** @deprecated -- use getEntryType(String typeName) to access EntryType. */
public static final EntryType ENTRY_TYPE_IMPORT = getEntryType(TYPE_DESCRIPTION_IMPORT);
/** @deprecated -- use getEntryType(String typeName) to access EntryType. */
public static final EntryType ENTRY_TYPE_TYPES = getEntryType(TYPE_DESCRIPTION_TYPES);
/** @deprecated -- use getEntryType(String typeName) to access EntryType. */
public static final EntryType ENTRY_TYPE_MESSAGE = getEntryType(TYPE_DESCRIPTION_MESSAGE);
/** @deprecated -- use getEntryType(String typeName) to access EntryType. */
public static final EntryType ENTRY_TYPE_OPERATION = getEntryType(TYPE_DESCRIPTION_OPERATION);
/** @deprecated -- use getEntryType(String typeName) to access EntryType. */
public static final EntryType ENTRY_TYPE_PORTTYPE = getEntryType(TYPE_DESCRIPTION_PORTTYPE);
/** @deprecated -- use getEntryType(String typeName) to access EntryType. */
public static final EntryType ENTRY_TYPE_BINDING = getEntryType(TYPE_DESCRIPTION_BINDING);
/** @deprecated -- use getEntryType(String typeName) to access EntryType. */
public static final EntryType ENTRY_TYPE_PORT = getEntryType(TYPE_DESCRIPTION_PORT);
/**
* Discovery entry types.
*/
/** @deprecated -- use getEntryType(String typeName) to access EntryType. */
public static final EntryType ENTRY_TYPE_BINDINGTEMPLATE = getEntryType(TYPE_DISCOVERY_BINDINGTEMPLATE);
/** @deprecated -- use getEntryType(String typeName) to access EntryType. */
public static final EntryType ENTRY_TYPE_TMODEL = getEntryType(TYPE_DISCOVERY_TMODEL);
/**
* Create entry type.
*/
private EntryType(ArtifactType artifactType, String typeName)
{
this.artifactType = artifactType;
this.typeName = typeName;
}
/**
* Is entry type equal to specified type.
* @param typeName entry type name.
* @return true if entry type equal to specified type.
*/
public boolean isType(String typeName)
{
return this.typeName.equals(typeName);
}
/**
* Is entry type equal to specified type.
* @param entryType entry type.
* @return true if entry type equal to specified type.
*/
public boolean isType(EntryType entryType)
{
return typeName.equals(entryType.getTypeName());
}
/**
* Get artifact type.
* @return artifact type.
*/
public ArtifactType getArtifactType()
{
return artifactType;
}
/**
* Get entry type name.
* @return entry type name.
*/
public String getTypeName()
{
return typeName;
}
/**
* Is valid entry type.
* @param typeName entry type name.
* @return true if entry type name is valid.
*/
public static final boolean isValidEntryType(String typeName)
{
return (entryTypeMap.get(typeName) == null ? false : true);
}
/**
* Create entry type.
* @param typeName entry type name.
* @return entry type.
* @throws RuntimeException if entry type name is invalid or inappropriate.
*/
public static final EntryType getEntryType(String typeName)
throws RuntimeException
{
if (entryTypeMap == null) {
BaseValidator validators[] = WSITestToolsPlugin.getPlugin()
.getBaseValidators();
for (int i = 0; i < validators.length; i++) {
String entryTypes[] = validators[i].getEntryTypes();
for (int j = 0; j < entryTypes.length; j++)
registerEntryType(ArtifactType.getArtifactType(
validators[i].getArtifactType()), entryTypes[j]);
}
}
// Get the entry type by type name
EntryType entryType = (EntryType) entryTypeMap.get(typeName);
if (entryType == null)
{
throw new RuntimeException(
"Could not get entry type because type name is invalid: "
+ typeName
+ ".");
}
return entryType;
}
/**
* Get list of entry type names for a specified artifact type name.
* @param artifactTypeName artifact type name.
* @return list of entry type names for a specified artifact type name.
* @throws RuntimeException if entry type name is invalid or inappropriate.
*/
public static final Vector getEntryTypeNameList(String artifactTypeName)
throws RuntimeException
{
// Get list
Vector entryTypeNameList = (Vector) entryTypeNameMap.get(artifactTypeName);
// If the list was not found, then throw an exception
if (entryTypeNameList == null)
{
throw new RuntimeException(
"Could not get entry type name list because artifact type name is invalid: "
+ artifactTypeName
+ ".");
}
return entryTypeNameList;
}
/**
* Get list of type names for a specified artifact type name.
*/
public static final EntryType registerEntryType(
ArtifactType artifactType,
String typeName)
{
EntryType entryType = null;
// Create entry type
entryType = new EntryType(artifactType, typeName);
if (entryTypeMap == null) {
entryTypeMap = new TreeMap();
}
// Add to entry type map
entryTypeMap.put(typeName, entryType);
// Get the entry type name vector for the artifact type
Vector entryTypeNameList =
(Vector) entryTypeNameMap.get(artifactType.getTypeName());
// Lazy initialize
if (entryTypeNameList == null) {
entryTypeNameList = new Vector();
entryTypeNameMap.put(artifactType.getTypeName(), entryTypeNameList);
}
// Add the type name to the list
entryTypeNameList.add(typeName);
return entryType;
}
}