001    package ezvcard.property;
002    
003    import java.util.EnumSet;
004    import java.util.Set;
005    
006    import ezvcard.VCardVersion;
007    
008    /*
009     Copyright (c) 2013, Michael Angstadt
010     All rights reserved.
011    
012     Redistribution and use in source and binary forms, with or without
013     modification, are permitted provided that the following conditions are met: 
014    
015     1. Redistributions of source code must retain the above copyright notice, this
016     list of conditions and the following disclaimer. 
017     2. Redistributions in binary form must reproduce the above copyright notice,
018     this list of conditions and the following disclaimer in the documentation
019     and/or other materials provided with the distribution. 
020    
021     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
022     ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
023     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
024     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
025     ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
026     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
027     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
028     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
029     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
030     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
031    
032     The views and conclusions contained in the software and documentation are those
033     of the authors and should not be interpreted as representing official policies, 
034     either expressed or implied, of the FreeBSD Project.
035     */
036    
037    /**
038     * Defines a URI representing the person's work place, which can be used to
039     * lookup information on the person's co-workers.
040     * 
041     * <p>
042     * <b>Code sample</b>
043     * </p>
044     * 
045     * <pre class="brush:java">
046     * VCard vcard = new VCard();
047     * OrgDirectory orgDirectory = new OrgDirectory(&quot;http://www.company.com/staff&quot;);
048     * vcard.addOrgDirectory(orgDirectory);
049     * </pre>
050     * 
051     * <p>
052     * <b>Property name:</b> {@code ORG-DIRECTORY}
053     * </p>
054     * <p>
055     * <b>Supported versions:</b> {@code 4.0}
056     * </p>
057     * @author Michael Angstadt
058     * @see <a href="http://tools.ietf.org/html/rfc6715">RFC 6715</a>
059     */
060    public class OrgDirectory extends UriProperty implements HasAltId {
061            /**
062             * @param uri the URI
063             */
064            public OrgDirectory(String uri) {
065                    super(uri);
066            }
067    
068            @Override
069            public Set<VCardVersion> _supportedVersions() {
070                    return EnumSet.of(VCardVersion.V4_0);
071            }
072    
073            @Override
074            public Integer getIndex() {
075                    return super.getIndex();
076            }
077    
078            @Override
079            public void setIndex(Integer index) {
080                    super.setIndex(index);
081            }
082    
083            /**
084             * Gets the TYPE parameter.
085             * @return the TYPE value (typically, this will be either "work" or "home")
086             * or null if it doesn't exist
087             */
088            public String getType() {
089                    return parameters.getType();
090            }
091    
092            /**
093             * Sets the TYPE parameter.
094             * @param type the TYPE value (this should be either "work" or "home") or
095             * null to remove
096             */
097            public void setType(String type) {
098                    parameters.setType(type);
099            }
100    
101            @Override
102            public String getLanguage() {
103                    return super.getLanguage();
104            }
105    
106            @Override
107            public void setLanguage(String language) {
108                    super.setLanguage(language);
109            }
110    
111            @Override
112            public Integer getPref() {
113                    return super.getPref();
114            }
115    
116            @Override
117            public void setPref(Integer pref) {
118                    super.setPref(pref);
119            }
120    
121            //@Override
122            public String getAltId() {
123                    return parameters.getAltId();
124            }
125    
126            //@Override
127            public void setAltId(String altId) {
128                    parameters.setAltId(altId);
129            }
130    }