KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > hivemind > schema > rules > PushContentRule


1 // Copyright 2005 The Apache Software Foundation
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14

15 package org.apache.hivemind.schema.rules;
16
17 import org.apache.hivemind.Element;
18 import org.apache.hivemind.schema.Rule;
19 import org.apache.hivemind.schema.SchemaProcessor;
20 import org.apache.hivemind.schema.Translator;
21
22 /**
23  * A rule that reads the element's content, passes it through the content translator, then pushes
24  * the result onto the processor stack.
25  *
26  * @since 1.1
27  * @author Knut Wannheden
28  */

29 public class PushContentRule extends BaseRule implements Rule
30 {
31     /**
32      * Uses the content translator to convert the element content into an object and pushes that
33      * object onto the processor stack.
34      */

35     public void begin(SchemaProcessor processor, Element element)
36     {
37         Translator t = processor.getContentTranslator();
38
39         String JavaDoc value = RuleUtils.processText(processor, element, element.getContent());
40
41         Object JavaDoc finalValue = t.translate(
42                 processor.getContributingModule(),
43                 Object JavaDoc.class,
44                 value,
45                 element.getLocation());
46
47         processor.push(finalValue);
48     }
49
50     /**
51      * Invokes {@link SchemaProcessor#pop()}.
52      */

53     public void end(SchemaProcessor processor, Element element)
54     {
55         processor.pop();
56     }
57 }
58
Popular Tags