Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlmandel2006-04-05 03:11:42 +0000
committerlmandel2006-04-05 03:11:42 +0000
commit4c1ee846206187306bcc1a8d3973c906e36524cd (patch)
tree9c4732b3efbd3753e232f7476b99473b7a8e341a /bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationRegistry.java
parent8c0b2dcec0fa2842ef4d6cfa76c852425b25573a (diff)
downloadwebtools.sourceediting-4c1ee846206187306bcc1a8d3973c906e36524cd.tar.gz
webtools.sourceediting-4c1ee846206187306bcc1a8d3973c906e36524cd.tar.xz
webtools.sourceediting-4c1ee846206187306bcc1a8d3973c906e36524cd.zip
[123911] Added extensible way to customize XML validation messages.
Diffstat (limited to 'bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationRegistry.java')
-rw-r--r--bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationRegistry.java97
1 files changed, 97 insertions, 0 deletions
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationRegistry.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationRegistry.java
new file mode 100644
index 0000000000..db0d0cecef
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationRegistry.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * Copyright (c) 2006 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.wst.xml.core.internal.validation.errorcustomization;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The error customization regsitry manages all registered
+ * IErrorMessageCustomizers by namespace.
+ */
+public class ErrorCustomizationRegistry
+{
+ protected static ErrorCustomizationRegistry registry = null;
+ protected Map customizers = new HashMap();
+
+ /**
+ * Restricted constructor in keeping with the singleton pattern.
+ */
+ protected ErrorCustomizationRegistry()
+ {
+ }
+
+ /**
+ * Get the one and only instance of the registry.
+ *
+ * @return
+ * The one and only instance of the registry.
+ */
+ public static ErrorCustomizationRegistry getInstance()
+ {
+ if(registry == null)
+ {
+ registry = new ErrorCustomizationRegistry();
+ }
+ return registry;
+ }
+
+ /**
+ * Add a customizer to the registry.
+ *
+ * @param namespace
+ * The namespace the customizer will act on.
+ * @param customizer
+ * The error customizer to register.
+ */
+ public void addErrorMessageCustomizer(String namespace, IErrorMessageCustomizer customizer)
+ {
+ // To register a customizer for the no namespace use an empty string.
+ if(namespace == null)
+ {
+ namespace = "";
+ }
+ List customizersForNS = (List)customizers.get(namespace);
+ if(customizersForNS == null)
+ {
+ customizersForNS = new ArrayList();
+ customizers.put(namespace, customizersForNS);
+ }
+ if(customizer != null)
+ {
+ customizersForNS.add(customizer);
+ }
+ }
+
+ /**
+ * Get the error customizers for a given namespace.
+ *
+ * @param namespace
+ * The namespace for which to retrieve the customizers.
+ * @return
+ * An array of customizers registered for this namespace.
+ */
+ public IErrorMessageCustomizer[] getCustomizers(String namespace)
+ {
+ if(namespace == null)
+ {
+ namespace = "";
+ }
+ List customizersForNS = (List)customizers.get(namespace);
+ if(customizersForNS == null)
+ {
+ customizersForNS = new ArrayList();
+ }
+ return (IErrorMessageCustomizer[])customizersForNS.toArray(new IErrorMessageCustomizer[customizersForNS.size()]);
+ }
+}

Back to the top