/*
 * Copyright (c) 2015 Sacred Scripture Foundation.
 * "All scripture is given by inspiration of God, and is profitable for
 * doctrine, for reproof, for correction, for instruction in righteousness:
 * That the man of God may be perfect, throughly furnished unto all good
 * works." (2 Tim 3:16-17)
 *
 * 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 com.sacredscripture.platform.ws.api.rest.v1;

import org.sacredscripturefoundation.commons.locale.LocaleProvider;

import java.util.Locale;

/**
 * This interface defines a link to an external resource.
 *
 * @author Paul Benedict
 * @since Sacred Scripture Platform 1.0
 */
public interface ResourceLink extends LocaleProvider {

    /**
     * Retrieves the web address of this link.
     *
     * @return the web address
     * @see #setHref(String)
     */
    String getHref();

    /**
     * Retrieves the relationship of this link.
     *
     * @return the relationship value
     * @see #setRel(String)
     * @see StandardLinkRelation
     */
    String getRel();

    /**
     * Stores the new web address for this link. No verification is performed to
     * determine whether the address is a well-formed URL/URI.
     *
     * @param href the web address
     * @see #getHref()
     */
    void setHref(String href);

    /**
     * Stores the new locale for this link.
     *
     * @param locale the locale
     * @see #getLocale()
     */
    void setLocale(Locale locale);

    /**
     * Stores the new relationship for this link.
     *
     * @param rel the relationship value
     * @see #getRel()
     * @see StandardLinkRelation
     */
    void setRel(String rel);

}

@@ -1035,37 +1035,134 @@
 %0D%0A%0D%0A
-/**%0D%0A * This interface define
+import javax.xml.bind.annotation.XmlElement;%0D%0Aimport javax.xml.bind.annotation.XmlRootElement;%0D%0A%0D%0A/**%0D%0A * This class represent
 s a 
@@ -1272,24 +1272,37 @@
 */%0D%0A
-public interface
+@XmlRootElement%0D%0Apublic class
  Res
@@ -1315,14 +1315,17 @@
 ink 
-extend
+implement
 s Lo
@@ -1338,24 +1338,204 @@
 ovider %7B%0D%0A%0D%0A
+    @XmlElement(name = %22href%22)%0D%0A    private String href;%0D%0A    @XmlElement(name = %22hreflang%22)%0D%0A    private Locale locale;%0D%0A    @XmlElement(name = %22rel%22)%0D%0A    private String rel;%0D%0A%0D%0A
     /**%0D%0A   
@@ -1654,32 +1654,39 @@
 )%0D%0A     */%0D%0A    
+public 
 String getHref()
@@ -1685,17 +1685,178 @@
 etHref()
-;
+ %7B%0D%0A        return href;%0D%0A    %7D%0D%0A%0D%0A    /**%0D%0A     * @see #setLocale(Locale)%0D%0A     */%0D%0A    @Override%0D%0A    public Locale getLocale() %7B%0D%0A        return locale;%0D%0A    %7D
 %0D%0A%0D%0A    
@@ -2032,16 +2032,23 @@
 */%0D%0A    
+public 
 String g
@@ -2054,17 +2054,46 @@
 getRel()
-;
+ %7B%0D%0A        return rel;%0D%0A    %7D
 %0D%0A%0D%0A    
@@ -2316,32 +2316,39 @@
 )%0D%0A     */%0D%0A    
+public 
 void setHref(Str
@@ -2356,17 +2356,52 @@
 ng href)
-;
+ %7B%0D%0A        this.href = href;%0D%0A    %7D
 %0D%0A%0D%0A    
@@ -2522,32 +2522,39 @@
 )%0D%0A     */%0D%0A    
+public 
 void setLocale(L
@@ -2566,17 +2566,56 @@
  locale)
-;
+ %7B%0D%0A        this.locale = locale;%0D%0A    %7D
 %0D%0A%0D%0A    
@@ -2790,16 +2790,23 @@
 */%0D%0A    
+public 
 void set
@@ -2820,16 +2820,49 @@
 ing rel)
-;
+ %7B%0D%0A        this.rel = rel;%0D%0A    %7D
 %0D%0A%0D%0A%7D%0D%0A

Convert to class