All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.seasar.framework.convention.NamingConvention Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2004-2015 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.framework.convention;

/**
 * 命名規約のためのインターフェースです。
 * 
 * @author higa
 * @author shot
 */
public interface NamingConvention {

    /**
     * viewのルートパスを返します。
     * 
     * @return view root path
     */
    String getViewRootPath();

    /**
     * viewのルートパスが/のみの場合に取り除きます。 例:"/" -> "", "/hoge" -> "/hoge"
     * 
     * @return adjusted view root path
     */
    String adjustViewRootPath();

    /**
     * viewの拡張子を返します。
     * 
     * @return view extension
     */
    String getViewExtension();

    /**
     * 実装クラスのsuffixを返します。
     * 
     * @return 実装クラスのsuffix
     */
    String getImplementationSuffix();

    /**
     * Pageクラスのsuffixを返します。
     * 
     * @return Pageクラスのsuffix
     */
    String getPageSuffix();

    /**
     * Actionクラスのsuffixを返します。
     * 
     * @return Actionクラスのsuffix
     */
    String getActionSuffix();

    /**
     * Serviceクラスのsuffixを返します。
     * 
     * @return Serviceクラスのsuffix
     */
    String getServiceSuffix();

    /**
     * Dxoクラスのsuffixを返します。
     * 
     * @return Dxoクラスのsuffix
     */
    String getDxoSuffix();

    /**
     * Logicクラスのsuffixを返します。
     * 
     * @return Logicクラスのsuffix
     */
    String getLogicSuffix();

    /**
     * Daoクラスのsuffixを返します。
     * 
     * @return Daoクラスのsuffix
     */
    String getDaoSuffix();

    /**
     * Helperクラスのsuffixを返します。
     * 
     * @return Helperクラスのsuffix
     */
    String getHelperSuffix();

    /**
     * Interceptorクラスのsuffixを返します。
     * 
     * @return Interceptorクラスのsuffix
     */
    String getInterceptorSuffix();

    /**
     * Validatorクラスのsuffixを返します。
     * 
     * @return Validatorクラスのsuffix
     */
    String getValidatorSuffix();

    /**
     * Converterクラスのsuffixを返します。
     * 
     * @return Converterクラスのsuffix
     */
    String getConverterSuffix();

    /**
     * Dtoクラスのsuffixを返します。
     * 
     * @return Dtoクラスのsuffix
     */
    String getDtoSuffix();

    /**
     * Connectorクラスのsuffixを返します。
     * 
     * @return Connectorクラスのsuffix
     */
    String getConnectorSuffix();

    /**
     * サブアプリケーションのルートパッケージ名を返します。
     * 
     * @return サブアプリケーションのルートパッケージ名
     */
    String getSubApplicationRootPackageName();

    /**
     * 実装用のパッケージ名を返します。
     * 
     * @return 実装用のパッケージ名
     */
    String getImplementationPackageName();

    /**
     * Dxoクラスのパッケージ名を返します。
     * 
     * @return Dxoクラスのパッケージ名
     */
    String getDxoPackageName();

    /**
     * Logicクラスのパッケージ名を返します。
     * 
     * @return Logicクラスのパッケージ名
     */
    String getLogicPackageName();

    /**
     * Daoクラスのパッケージ名を返します。
     * 
     * @return Daoクラスのパッケージ名
     */
    String getDaoPackageName();

    /**
     * Entityクラスのパッケージ名を返します。
     * 
     * @return Entityクラスのパッケージ名
     */
    String getEntityPackageName();

    /**
     * Dtoクラスのパッケージ名を返します。
     * 
     * @return Dtoクラスのパッケージ名
     */
    String getDtoPackageName();

    /**
     * Serviceクラスのパッケージ名を返します。
     * 
     * @return Serviceクラスのパッケージ名
     */
    String getServicePackageName();

    /**
     * Interceptorクラスのパッケージ名を返します。
     * 
     * @return Interceptorクラスのパッケージ名
     */
    String getInterceptorPackageName();

    /**
     * Validatorクラスのパッケージ名を返します。
     * 
     * @return Validatorクラスのパッケージ名
     */
    String getValidatorPackageName();

    /**
     * Converterクラスのパッケージ名を返します。
     * 
     * @return Converterクラスのパッケージ名
     */
    String getConverterPackageName();

    /**
     * Helperクラスのパッケージ名を返します。
     * 
     * @return Helperクラスのパッケージ名
     */
    String getHelperPackageName();

    /**
     * Connectorクラスのパッケージ名を返します。
     * 
     * @return Connectorクラスのパッケージ名
     */
    String getConnectorPackageName();

    /**
     * ルートパッケージ名の配列を返します。
     * 
     * @return ルートパッケージ名の配列
     */
    String[] getRootPackageNames();

    /**
     * 無視するルートパッケージ名の配列を返します。
     * 
     * @return 無視するルートパッケージ名の配列
     */
    String[] getIgnorePackageNames();

    /**
     * suffixをパッケージ名に変換します。
     * 
     * @param suffix suffix
     * @return パッケージ名
     */
    String fromSuffixToPackageName(String suffix);

    /**
     * クラス名を短いコンポーネント名に変換します。 短いコンポーネント名とは、"サブアプリケーション名_"がついていないコンポーネント名です。
     * 
     * @param className className
     * @return 短いコンポーネント名
     */
    String fromClassNameToShortComponentName(String className);

    /**
     * クラス名をコンポーネント名に変換します。
     * 
     * @param className className
     * @return コンポーネント名
     */
    String fromClassNameToComponentName(String className);

    /**
     * コンポーネント名を{@link Class}に変換します。
     * 
     * @param componentName componentName
     * @return {@link Class}
     */
    Class fromComponentNameToClass(String componentName);

    /**
     * クラス名を実装クラス名に変換します。
     * 
     * @param className className
     * @return 実装クラス名
     */
    String toImplementationClassName(String className);

    /**
     * クラス名をインターフェース名に変換します。
     * 
     * @param className className
     * @return インターフェース名
     */
    String toInterfaceClassName(String className);

    /**
     * 規約に従っていないスキップすべきクラスかどうか返します。
     * 
     * @param clazz clazz
     * @return 規約に従っていないスキップすべきクラス
     */
    boolean isSkipClass(Class clazz);

    /**
     * 最終的に利用されるクラスに変換します。 通常は、実装クラスですが、DaoのようにInterceptorで実体化される場合、
     * インターフェースの場合もあります。
     * 
     * @param clazz clazz
     * @return 最終的に利用されるクラス
     */
    Class toCompleteClass(Class clazz);

    /**
     * コンポーネント名をクラス名の一部に変換します。 "_"は"."に"_"の後ろは大文字に変換されます。
     * 例えば、コンポーネント名がhoge_fooの場合、hoge.Fooになります。
     * 
     * @param componentName componentName
     * @return クラス名の一部
     */
    String fromComponentNameToPartOfClassName(String componentName);

    /**
     * コンポーネント名をsuffixに変換します。 コンポーネント名の最後から探して最初の大文字までを抽出して、
     * 先頭を小文字に変換したものが、 suffixになります。
     * 
     * @param componentName componentName
     * @return suffix
     */
    String fromComponentNameToSuffix(String componentName);

    /**
     * クラス名をsuffixに変換します。
     * 
     * @param className className
     * @return suffix
     */
    String fromClassNameToSuffix(String className);

    /**
     * Viewのパスをページ名に変換します。
     * 
     * @param path path
     * @return ページ名
     */
    String fromPathToPageName(String path);

    /**
     * Viewのパスをアクション名に変換します。
     * 
     * @param path path
     * @return アクション名
     */
    String fromPathToActionName(String path);

    /**
     * ページ名をViewのパスに変換します。
     * 
     * @param pageName pageName
     * @return Viewのパス
     */
    String fromPageNameToPath(String pageName);

    /**
     * ページの{@link Class}をViewのパスに変換します。
     * 
     * @param pageClass pageClass
     * @return Viewのパス
     */
    String fromPageClassToPath(Class pageClass);

    /**
     * アクション名をViewのパスに変換します。
     * 
     * @param actionName actionName
     * @return Viewのパス
     */
    String fromActionNameToPath(String actionName);

    /**
     * アクション名をページ名に変換します。
     * 
     * @param actionName actionName
     * @return ページ名
     */
    String fromActionNameToPageName(String actionName);

    /**
     * ターゲットのクラス名かどうかを返します。
     * 
     * @param className className
     * @param suffix suffix
     * @return ターゲットのクラス名かどうか
     */
    boolean isTargetClassName(String className, String suffix);

    /**
     * ターゲットのクラス名かどうかを返します。
     * 
     * @param className className
     * @return ターゲットのクラス名かどうか
     */
    boolean isTargetClassName(String className);

    /**
     * HOT deployのターゲットのクラス名かどうかを返します。
     * 
     * @param className className
     * @return HOT deployのターゲットのクラス名かどうか
     */
    boolean isHotdeployTargetClassName(String className);

    /**
     * 無視するクラス名かどうかを返します。
     * 
     * @param className className
     * @return 無視するクラス名かどうか
     */
    boolean isIgnoreClassName(String className);

    /**
     * 妥当なViewのルートパスかどうかを返します。
     * 
     * @param path path
     * @return 妥当なViewのルートパスかどうか
     */
    boolean isValidViewRootPath(String path);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy