01: /*
02: * Copyright 2004-2006 the original author or authors.
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
10: * Unless required by applicable law or agreed to in writing, software
11: * distributed under the License is distributed on an "AS IS" BASIS,
12: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13: * See the License for the specific language governing permissions and
14: * limitations under the License.
15: */
16:
17: package org.compass.core.mapping;
18:
19: import java.util.Iterator;
20:
21: /**
22: * A mapping type that can hold interlly multiple mappings (associated with a name).
23: *
24: * @author kimchy
25: */
26: public interface MultipleMapping extends Mapping {
27:
28: /**
29: * Adds the mapping. Returns the location that the mapping was added to.
30: *
31: * @param mapping The mapping to add
32: * @return The location the mapping was added to.
33: */
34: int addMapping(Mapping mapping);
35:
36: /**
37: * Returns the mapping associated with the given name. Don't be confused with
38: * {@link #getName()}, since the mappings might be saved not under the mapping
39: * name (it might be under the mapping path). It really depends on the actual
40: * implementation.
41: *
42: * @param name The name tha mapping was registered under when it was added.
43: * @return The mapping found, or <code>null</code> if nothing was found.
44: */
45: Mapping getMapping(String name);
46:
47: /**
48: * Returns the mapping at the given index.
49: */
50: Mapping getMapping(int index);
51:
52: /**
53: * Returns an iterator over the stored mappings.
54: */
55: Iterator mappingsIt();
56: }
|