001/**
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements.  See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership.  The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License.  You may obtain a copy of the License at
009 *
010 *     http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018
019package org.apache.hadoop.yarn.api.records;
020
021import org.apache.hadoop.classification.InterfaceAudience.Public;
022import org.apache.hadoop.classification.InterfaceStability.Stable;
023import org.apache.hadoop.yarn.util.Records;
024
025/**
026 * <p><code>URL</code> represents a serializable {@link java.net.URL}.</p>
027 */
028@Public
029@Stable
030public abstract class URL {
031
032  @Public
033  @Stable
034  public static URL newInstance(String scheme, String host, int port, String file) {
035    URL url = Records.newRecord(URL.class);
036    url.setScheme(scheme);
037    url.setHost(host);
038    url.setPort(port);
039    url.setFile(file);
040    return url;
041  }
042
043  /**
044   * Get the scheme of the URL.
045   * @return scheme of the URL
046   */
047  @Public
048  @Stable
049  public abstract String getScheme();
050  
051  /**
052   * Set the scheme of the URL
053   * @param scheme scheme of the URL
054   */
055  @Public
056  @Stable
057  public abstract void setScheme(String scheme);
058
059  /**
060   * Get the user info of the URL.
061   * @return user info of the URL
062   */
063  @Public
064  @Stable
065  public abstract String getUserInfo();
066  
067  /**
068   * Set the user info of the URL.
069   * @param userInfo user info of the URL
070   */
071  @Public
072  @Stable
073  public abstract void setUserInfo(String userInfo);
074
075  /**
076   * Get the host of the URL.
077   * @return host of the URL
078   */
079  @Public
080  @Stable
081  public abstract String getHost();
082  
083  /**
084   * Set the host of the URL.
085   * @param host host of the URL
086   */
087  @Public
088  @Stable
089  public abstract void setHost(String host);
090
091  /**
092   * Get the port of the URL.
093   * @return port of the URL
094   */
095  @Public
096  @Stable
097  public abstract int getPort();
098  
099  /**
100   * Set the port of the URL
101   * @param port port of the URL
102   */
103  @Public
104  @Stable
105  public abstract void setPort(int port);
106
107  /**
108   * Get the file of the URL.
109   * @return file of the URL
110   */
111  @Public
112  @Stable
113  public abstract String getFile();
114  
115  /**
116   * Set the file of the URL.
117   * @param file file of the URL
118   */
119  @Public
120  @Stable
121  public abstract void setFile(String file);
122}