Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/tagmatcher/TagMatchingAlgorithm.java')
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/tagmatcher/TagMatchingAlgorithm.java121
1 files changed, 0 insertions, 121 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/tagmatcher/TagMatchingAlgorithm.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/tagmatcher/TagMatchingAlgorithm.java
deleted file mode 100644
index 2a4a283b6..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/tagmatcher/TagMatchingAlgorithm.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 Oracle 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:
- * Oracle Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.core.tagmatcher;
-
-import org.eclipse.jst.jsf.common.sets.AxiomaticSet;
-import org.w3c.dom.Node;
-
-/**
- * An algorithm that can be applied at a particular DOM node. The result
- * may be expressed as a boolean or a set of matching nodes. The following
- * are equivalent:
- *
- * false and empty set
- * true and non-empty set
- *
- * Concrete implementations must be idempotent on evaluate():
- *
- * 1) evaluate(node) must always return the same set if called repeatedly on
- * the same node in the same DOM tree.
- * 2) evaluate must be able to be called on any number of nodes in order and always
- * produce the same result independent of what was called before and in what order.
- *
- * <p><b>Provisional API - subject to change</b></p>
- *
- * @author cbateman
- *
- */
-public abstract class TagMatchingAlgorithm
-{
- private boolean _isInvalid; // = false;
-
- private boolean _isInitialized;
- /**
- * The expression being passed to the algorithm
- */
- protected final String _expression;
-
- /**
- * Constructor.
- *
- * @param expression
- */
- protected TagMatchingAlgorithm(String expression)
- {
- _expression = expression;
- }
-
- /**
- * Called exactly once to initialize any pre-evaluation setup for
- * the expression set for the algorithm. This is public to allow
- * the client control when this initialization occurs in case it is expensive.
- * evaluate() will call this method automatically if it has never been called
- * @throws InvalidExpressionException if the underlying algorithm throws an
- * exception during init
- * @throws IllegalStateException if it has already been determined that the
- * expression is invalid.
- */
- public final void initialize()
- {
- if (_isInvalid)
- {
- throw new IllegalStateException("Expression: "+_expression+" has already been determined to be invalid"); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- if (!_isInitialized)
- {
- try
- {
- doInitialize();
- }
- catch (Exception e)
- {
- _isInvalid = true;
- throw new InvalidExpressionException(e);
- }
- _isInitialized = true;
- }
- }
-
- /**
- * @param applyTo
- * @return the set matching the configured expression applied to applyTo
- * using the algorithm represented by this instance.
- * @throws InvalidExpressionException of a problem occurs initializing the expression
- * @throws EvaluationException if the internal algorithm throws an exception while
- * evaluating.
- * @throws IllegalStateException if evaluate is called again once InvalidExpressionException
- * has already been thrown.
- */
- public final AxiomaticSet evaluate(Node applyTo)
- {
- initialize();
- return doEvaluate(applyTo);
- }
-
- /**
- * Implementers must override to the evaluation of the target,expression pair
- * @param target
- * @return the algorithm evaluated with
- */
- protected abstract AxiomaticSet doEvaluate(Node target);
-
- /**
- * Do any initialization that is required before the algorithm is used
- * to evaluate an expression on any node. This will get called exactly once and
- * is guaranteed to be called, at latest, immediately before doEvaluate
- *
- * Method may throw runtime exceptions. These will be repropagated as
- * InvalidExpressionException's with the original exception wrapped.
- * @throws Exception
- */
- protected abstract void doInitialize() throws Exception;
-}

Back to the top