001 /**
002 * <copyright>
003 * </copyright>
004 *
005 * $Id$
006 */
007 package com.hammurapi.config;
008
009 import com.hammurapi.config.bootstrap.ConfigurationException;
010 import com.hammurapi.config.bootstrap.TokenExpander.TokenSource;
011
012
013 import java.net.URL;
014
015 import org.eclipse.emf.common.util.EList;
016
017 import org.eclipse.emf.ecore.EObject;
018
019 /**
020 * <!-- begin-user-doc -->
021 * A representation of the model object '<em><b>Path</b></em>'.
022 * <!-- end-user-doc -->
023 *
024 * <!-- begin-model-doc -->
025 * Classpath. Object definitions can have their own classpaths. As a result, users don' t have to download component code and bundle if with the application - it will be downloaded by the classloader when needed. This concept is similar to applets and Java Web Start concept, but classpath is defined at the component level instead of being defined at the application level.
026 * <!-- end-model-doc -->
027 *
028 * <p>
029 * The following features are supported:
030 * <ul>
031 * <li>{@link com.hammurapi.config.Path#getPathElement <em>Path Element</em>}</li>
032 * <li>{@link com.hammurapi.config.Path#getPath <em>Path</em>}</li>
033 * <li>{@link com.hammurapi.config.Path#getBaseUrl <em>Base Url</em>}</li>
034 * </ul>
035 * </p>
036 *
037 * @see com.hammurapi.config.ConfigPackage#getPath()
038 * @model
039 * @generated
040 */
041 public interface Path extends EObject {
042 /**
043 * Returns the value of the '<em><b>Path Element</b></em>' attribute list.
044 * The list contents are of type {@link java.lang.String}.
045 * <!-- begin-user-doc -->
046 * <!-- end-user-doc -->
047 * <!-- begin-model-doc -->
048 * Path element is a URL relative to the baseUri.
049 * <!-- end-model-doc -->
050 * @return the value of the '<em>Path Element</em>' attribute list.
051 * @see com.hammurapi.config.ConfigPackage#getPath_PathElement()
052 * @model
053 * @generated
054 */
055 EList<String> getPathElement();
056
057 /**
058 * Returns the value of the '<em><b>Path</b></em>' containment reference list.
059 * The list contents are of type {@link com.hammurapi.config.Path}.
060 * <!-- begin-user-doc -->
061 * <!-- end-user-doc -->
062 * <!-- begin-model-doc -->
063 * Paths can be nested. Child's path baseUri in this case is evaluated relative to the parent's path baseUri.
064 * <!-- end-model-doc -->
065 * @return the value of the '<em>Path</em>' containment reference list.
066 * @see com.hammurapi.config.ConfigPackage#getPath_Path()
067 * @model containment="true"
068 * @generated
069 */
070 EList<Path> getPath();
071
072 /**
073 * Returns the value of the '<em><b>Base Url</b></em>' attribute.
074 * <!-- begin-user-doc -->
075 * <!-- end-user-doc -->
076 * <!-- begin-model-doc -->
077 * Base URL, path elements and base URI's of child paths are evaluated relative to the base URI, if it is not null or blank. This base URL is evaluated relative to baseURL parameter of getUrls method.
078 * <!-- end-model-doc -->
079 * @return the value of the '<em>Base Url</em>' attribute.
080 * @see #setBaseUrl(String)
081 * @see com.hammurapi.config.ConfigPackage#getPath_BaseUrl()
082 * @model
083 * @generated
084 */
085 String getBaseUrl();
086
087 /**
088 * Sets the value of the '{@link com.hammurapi.config.Path#getBaseUrl <em>Base Url</em>}' attribute.
089 * <!-- begin-user-doc -->
090 * <!-- end-user-doc -->
091 * @param value the new value of the '<em>Base Url</em>' attribute.
092 * @see #getBaseUrl()
093 * @generated
094 */
095 void setBaseUrl(String value);
096
097 /**
098 * <!-- begin-user-doc -->
099 * <!-- end-user-doc -->
100 * <!-- begin-model-doc -->
101 * Returns URL's to construct URL classloader.
102 * @param baseURL Base URL for path elements.
103 * @param tokens Token source to replace ${...} tokens in path elements.
104 * <!-- end-model-doc -->
105 * @model dataType="com.hammurapi.config.EUrl" exceptions="com.hammurapi.config.EConfigurationException" baseURLDataType="com.hammurapi.config.EUrl" tokensDataType="com.hammurapi.config.ETokenSource"
106 * @generated
107 */
108 EList<URL> getUrls(URL baseURL, TokenSource tokens) throws ConfigurationException;
109
110 } // Path