org.gcube.portlets.user.shareupdates.server.opengraph
Class OpenGraph

java.lang.Object
  extended by org.gcube.portlets.user.shareupdates.server.opengraph.OpenGraph

public class OpenGraph
extends Object

A Java object representation of an Open Graph enabled webpage. A simplified layer over a Hastable.

Author:
Callum Jones

Field Summary
static Hashtable<String,String[]> BASE_TYPES
           
static String[] REQUIRED_META
           
 
Constructor Summary
OpenGraph()
          Create an open graph representation for generating your own Open Graph object
OpenGraph(String url, boolean ignoreSpecErrors, URLConnection siteConnection)
          Fetch the open graph representation from a web site
 
Method Summary
 Hashtable<String,ArrayList<MetaElement>> exposeTable()
          Obtain the underlying HashTable
 String getBaseType()
          Get the basic type of the Open graph page as per the specification
 String getContent(String property)
          Get a value of a given Open Graph property
 String getOriginalUrl()
          Get the original URL the Open Graph page was obtained from
 MetaElement[] getProperties()
          Get all the defined properties of the Open Graph object
 MetaElement[] getProperties(String property)
          Get all the defined properties of the Open Graph object
 boolean hasChanged()
          Test if the object has been modified by setters/deleters.
 boolean isFromWeb()
          Test if the Open Graph object was initially a representation of a web page
 void removeProperty(String property)
          Removed a defined property
 void setProperty(OpenGraphNamespace namespace, String property, String content)
          Set the Open Graph property to a specific value
 String[] toHTML()
          Get the HTML representation of the Open Graph data.
 String[] toXHTML()
          Get the XHTML representation of the Open Graph data.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

REQUIRED_META

public static final String[] REQUIRED_META

BASE_TYPES

public static final Hashtable<String,String[]> BASE_TYPES
Constructor Detail

OpenGraph

public OpenGraph()
Create an open graph representation for generating your own Open Graph object


OpenGraph

public OpenGraph(String url,
                 boolean ignoreSpecErrors,
                 URLConnection siteConnection)
          throws IOException,
                 Exception
Fetch the open graph representation from a web site

Parameters:
url - The address to the web page to fetch Open Graph data
ignoreSpecErrors - Set this option to true if you don't wish to have an exception throw if the page does not conform to the basic 4 attributes
Throws:
IOException - If a network error occurs, the HTML parser will throw an IO Exception
Exception - A generic exception is throw if the specific page fails to conform to the basic Open Graph standard as define by the constant REQUIRED_META
Method Detail

getBaseType

public String getBaseType()
Get the basic type of the Open graph page as per the specification

Returns:
Base type as defined by specification, null otherwise

getContent

public String getContent(String property)
Get a value of a given Open Graph property

Parameters:
property - The Open graph property key
Returns:
Returns the value of the first property defined, null otherwise

getProperties

public MetaElement[] getProperties()
Get all the defined properties of the Open Graph object

Returns:
An array of all currently defined properties

getProperties

public MetaElement[] getProperties(String property)
Get all the defined properties of the Open Graph object

Parameters:
property - The property to focus on
Returns:
An array of all currently defined properties

getOriginalUrl

public String getOriginalUrl()
Get the original URL the Open Graph page was obtained from

Returns:
The address to the Open Graph object page

toHTML

public String[] toHTML()
Get the HTML representation of the Open Graph data.

Returns:
An array of meta elements as Strings

toXHTML

public String[] toXHTML()
Get the XHTML representation of the Open Graph data.

Returns:
An array of meta elements as Strings

setProperty

public void setProperty(OpenGraphNamespace namespace,
                        String property,
                        String content)
Set the Open Graph property to a specific value

Parameters:
namespace - The OpenGraph namespace the content belongs to
property - The og:XXXX where XXXX is the property you wish to set
content - The value or contents of the property to be set

removeProperty

public void removeProperty(String property)
Removed a defined property

Parameters:
property - The og:XXXX where XXXX is the property you wish to remove

exposeTable

public Hashtable<String,ArrayList<MetaElement>> exposeTable()
Obtain the underlying HashTable

Returns:
The underlying structure as a Hashtable

isFromWeb

public boolean isFromWeb()
Test if the Open Graph object was initially a representation of a web page

Returns:
True if the object is from a web page, false otherwise

hasChanged

public boolean hasChanged()
Test if the object has been modified by setters/deleters. This is only relevant if this object initially represented a web page

Returns:
True True if the object has been modified, false otherwise


Copyright © 2014. All Rights Reserved.