Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2012 Kevin Sawicki <kevinsawicki@gmail.com>
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to
   * deal in the Software without restriction, including without limitation the
   * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
   * sell copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
  *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
  *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
  * IN THE SOFTWARE.
  */
 package com.github.kevinsawicki.halligan;
 
 import static java.lang.Boolean.FALSE;
 import static java.lang.Boolean.TRUE;
 
 
 import java.util.Map;

Link properties
 
 public class Link implements Serializable {
 
   private static final long serialVersionUID = -3017682664576119547L;
 
   private String getValue(final String namefinal Map<StringObjectvalues) {
     final Object value = values.remove(name);
     return value != null ? value.toString() : null;
   }

  
A URI that can be templated
 
   public final String href;

  
Language of the target resource
 
   public final String hreflang;

  
Secondary key
 
   public final String name;

  
A URI that hints about the profile of the target resource
 
   public final String profile;

  
True if the href field is templated, false otherwise
 
   public final boolean templated;

  
Human-readable label for the href
 
   public final String title;

  
Media-type hint for the target resource
 
   public final String type;
 
   private final Map<StringObjectproperties = new HashMap<StringObject>();

  
Create link with values

Parameters:
href
hreflang
name
profile
templated
title
type
 
   public Link(final String hreffinal String hreflangfinal String name,
       final String profilefinal boolean templatedfinal String title,
       final String type) {
     this. = href;
     this. = hreflang;
     this. = name;
    this. = profile;
    this. = templated;
    this. = title;
    this. = type;
  }

  
Create link with values from map

Parameters:
properties
  public Link(final Map<StringObjectproperties) {
    if (properties != null) {
      this..putAll(properties);
       = getValue("href"this.);
       = getValue("hreflang"this.);
       = getValue("name"this.);
       = getValue("profile"properties);
       = Boolean.valueOf(getValue("templated"this.));
       = getValue("title"this.);
       = getValue("type"this.);
    } else {
      this. = null;
      this. = null;
      this. = null;
      this. = null;
      this. = false;
      this. = null;
      this. = null;
    }
  }

  
Expand templated href with no params

Returns:
href with no expanded values if this link if templated, base href otherwise
  public String expandHref() {
    if ()
      return UriTemplate.fromTemplate().expand();
    else
      return ;
  }

  
Expand templated href using given values

Parameters:
values
Returns:
href with values expanded if this link is templated, base href otherwise
  public String expandHref(final Map<StringObjectvalues) {
    if ()
      return UriTemplate.fromTemplate().set(values).expand();
    else
      return ;
  }

  
Expand templated href using given name and value

Parameters:
name
value
Returns:
href with name/value expanded if this link is templated, base href otherwise
  public String expandHref(final String namefinal Object value) {
    if ()
      return UriTemplate.fromTemplate().set(namevalue).expand();
    else
      return ;
  }

  
Expand templated href using given name/value pairs

Parameters:
values
Returns:
href with values expanded if this link is templated, base href otherwise
  public String expandHref(final Object... values) {
    if () {
      final UriTemplate template = UriTemplate.fromTemplate();
      for (int i = 0; i < values.lengthi += 2)
        template.set(values[i].toString(), values[i + 1]);
      return template.expand();
    } else
      return ;
  }

  
Get resource property as an integer

Parameters:
name
Returns:
integer value or -1 if the property is missing or not a java.lang.Number
  public int getInt(final String name) {
    final Object value = .get(name);
    return value instanceof Number ? ((Numbervalue).intValue() : -1;
  }

  
Get link property as an integer

Parameters:
name
Returns:
integer value or -1 if the property is missing or not a java.lang.Number
  public double getDouble(final String name) {
    final Object value = .get(name);
    return value instanceof Number ? ((Numbervalue).doubleValue() : -1;
  }

  
Get link property as a long

Parameters:
name
Returns:
long value or -1 if the property is missing or not a java.lang.Number
  public long getLong(final String name) {
    final Object value = .get(name);
    return value instanceof Number ? ((Numbervalue).longValue() : -1;
  }

  
Get link property as a boolean

Parameters:
name
Returns:
boolean value or false if the property is missing or not a java.lang.Boolean
  public boolean getBoolean(final String name) {
    final Object value = .get(name);
    return value instanceof Boolean ? ((Booleanvalue).booleanValue() : false;
  }

  
Get link property as a java.lang.String

Parameters:
name
Returns:
string value of property or null if the property is missing
  public String getString(final String name) {
    final Object value = .get(name);
    return value != null ? value.toString() : null;
  }

  
Get link property as a java.util.Map

Parameters:
name
Returns:
map value of property of null if the property is missing or not a java.util.Map
  @SuppressWarnings("unchecked")
  public Map<StringObjectgetMap(final String name) {
    final Object value = .get(name);
    return value instanceof Map ? (Map<StringObject>) value : null;
  }
  public boolean equals(final Object obj) {
    if (obj == this)
      return true;
    if (!(obj instanceof Link))
      return false;
    if ( == null)
      return false;
    Link other = (Linkobj;
    return  == other.templated && .equals(other.href);
  }
  public int hashCode() {
    if ( != null)
      if ()
        return Arrays.hashCode(new Object[] {  });
      else
        return Arrays.hashCode(new Object[] {  });
    else
      return super.hashCode();
  }
  public String toString() {
    if ( != null)
      return ;
    else
      return super.toString();
  }
New to GrepCode? Check out our FAQ X