/* * Copyright 2004-2012 the Seasar Foundation and the Others. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ package org.seasar.mayaa.engine.specification; import java.util.Iterator; /** * @author Masataka Kurihara (Gluegent, Inc.) */ public interface Namespace extends NodeObject { /** * 親名前空間スコープの設定。 * @param parent 親の名前空間スコープ。 */ void setParentSpace(Namespace parent); /** * 親名前空間スコープの取得。 * @return 親の名前空間スコープ。 */ Namespace getParentSpace(); /** * 名前空間モデルの追加。 * @param prefix 名前空間プレフィックス。 * @param namespaceURI 名前空間URI。 */ void addPrefixMapping(String prefix, URI namespaceURI); /** * このスコープにて、名前空間モデルを追加したかどうか。 * @return このスコープに追加モデルがあるとtrue。 */ boolean addedMapping(); /** * 現在のスコープでPrefixが無指定の場合に選択される * デフォルト名前空間URIを設定する。 * 予め addPrefixMappingで追加されていなければならない。 * nullを指定すると prefixMappingで prefixを "" として * 登録したものがデフォルトになる。 * @param namespaceURI 名前空間URI。 */ void setDefaultNamespaceURI(URI namespaceURI); /** * 現在のスコープでPrefixが無指定の場合に選択される * デフォルト名前空間を返す。 * * @return デフォルト名前空間。デフォルト名前空間がない場合にはnull */ URI getDefaultNamespaceURI(); /** * 名前空間モデルの取得。 * @param prefix 取得したい名前空間のプレフィックス。 * @param all 親スコープも検索する。 * @return 名前空間モデル。 */ PrefixMapping getMappingFromPrefix(String prefix, boolean all); /** * 名前空間モデルの取得。 * @param namespaceURI 取得したい名前空間のURI。 * @param all 親スコープも検索する。 * @return 名前空間モデル。 */ PrefixMapping getMappingFromURI(URI namespaceURI, boolean all); /** * 適用される名前空間のイテレート。 * @param all 親スコープも検索する。 * @return プレフィックスマッピング(<code>PrefixMapping</code>)のイテレータ。 */ Iterator iteratePrefixMapping(boolean all); }