XBRLAPI

A Java API for XBRL


org.xbrlapi.networks
Class AnalyserImpl

java.lang.Object
  extended by org.xbrlapi.networks.AnalyserImpl
All Implemented Interfaces:
Analyser
Direct Known Subclasses:
AllAnalyserImpl, NonProhibitedAnalyserImpl

public class AnalyserImpl
extends Object
implements Analyser

This Analyser returns information based upon all active relationships. Set this as the analyser used by a store when you want that store to produce query results where only active relationships are considered.

Author:
Geoff Shuetrim (geoff@galexy.net)

Field Summary
protected static org.apache.log4j.Logger logger
           
 
Constructor Summary
AnalyserImpl(Store store)
           
 
Method Summary
 List<Relationship> getAllRelationships()
           
 Set<URI> getArcroles()
           
 Set<URI> getArcroles(URI linkRole)
           
 List<Relationship> getLabelRelationships(String sourceIndex)
           
 List<Relationship> getLabelRelationshipsByLanguage(String sourceIndex, String language)
           
 List<Relationship> getLabelRelationshipsByLanguageAndRole(String sourceIndex, String language, URI role)
           
 List<Relationship> getLabelRelationshipsByLanguages(String sourceIndex, List<String> languages)
           
 List<Relationship> getLabelRelationshipsByRole(String sourceIndex, URI role)
           
 List<Relationship> getLabelRelationshipsByRoles(String sourceIndex, List<String> languages, List<URI> roles)
           
 List<Relationship> getLabelRelationshipsByRoles(String sourceIndex, List<URI> roles)
           
 Set<URI> getLinkRoles()
           
 Set<URI> getLinkRoles(URI arcrole)
           
 List<Relationship> getReferenceRelationships(String sourceIndex)
           
 List<Relationship> getReferenceRelationshipsByLanguage(String sourceIndex, String language)
           
 List<Relationship> getReferenceRelationshipsByLanguageAndRole(String sourceIndex, String language, URI role)
           
 List<Relationship> getReferenceRelationshipsByLanguages(String sourceIndex, List<String> languages)
           
 List<Relationship> getReferenceRelationshipsByRole(String sourceIndex, URI role)
           
 List<Relationship> getReferenceRelationshipsByRoles(String sourceIndex, List<String> languages, List<URI> roles)
           
 List<Relationship> getReferenceRelationshipsByRoles(String sourceIndex, List<URI> roles)
           
 List<Relationship> getRelationships(Set<URI> arcroles)
           
protected  List<Relationship> getRelationships(String query)
          This method provides a place to filter relationships after retrieving them to eliminate overridden and prohibited relationships as desired.
 List<Relationship> getRelationships(String sourceIndex, String targetIndex, URI linkRole, URI arcrole)
           
 List<Relationship> getRelationships(URI arcrole)
           
 List<Relationship> getRelationships(URI linkRole, Set<URI> arcroles)
           
 List<Relationship> getRelationships(URI linkRole, URI arcrole)
           
 List<Relationship> getRelationshipsFrom(String sourceIndex, Set<URI> arcroles)
           
 List<Relationship> getRelationshipsFrom(String sourceIndex, URI arcrole)
           
 List<Relationship> getRelationshipsFrom(String sourceIndex, URI linkRole, Set<URI> arcroles)
           
 SortedSet<Relationship> getRelationshipsFrom(String sourceIndex, URI linkRole, URI arcrole)
           
 List<Relationship> getRelationshipsTo(String targetIndex, Set<URI> arcroles)
           
 List<Relationship> getRelationshipsTo(String targetIndex, URI arcrole)
           
 List<Relationship> getRelationshipsTo(String targetIndex, URI linkRole, Set<URI> arcroles)
           
 SortedSet<Relationship> getRelationshipsTo(String targetIndex, URI linkRole, URI arcrole)
           
 Set<String> getRootIndices(URI linkRole, URI arcrole)
           
 List<Relationship> getRootRelationships(URI linkRole, URI arcrole)
           
<F extends Fragment>
Set<F>
getRoots(URI linkRole, URI arcrole)
           
protected  Store getStore()
           
 boolean hasAllRelationships(URI document)
          Algorithm involves: Getting all persisted relationships in the document Getting all arc+arcend+arcsource combinations in the document Matching each arc to its persisted relationships Returning false if any arc does not have persisted relationships
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected static final org.apache.log4j.Logger logger
Constructor Detail

AnalyserImpl

public AnalyserImpl(Store store)
             throws XBRLException
Parameters:
store - The data store to use.
Throws:
XBRLException - if the store is null.
Method Detail

hasAllRelationships

public boolean hasAllRelationships(URI document)
                            throws XBRLException
Algorithm involves:
  1. Getting all persisted relationships in the document
  2. Getting all arc+arcend+arcsource combinations in the document
  3. Matching each arc to its persisted relationships
  4. Returning false if any arc does not have persisted relationships

Specified by:
hasAllRelationships in interface Analyser
Parameters:
document - The document URI.
Returns:
true if all of the relationships expressed by the arcs in the document have been persisted in the data store and false otherwise.
Throws:
XBRLException
See Also:
Analyser.hasAllRelationships(URI)

getRelationships

protected List<Relationship> getRelationships(String query)
                                       throws XBRLException
This method provides a place to filter relationships after retrieving them to eliminate overridden and prohibited relationships as desired.

Parameters:
query - The query to run to get the relationships.
Returns:
the list of relationships returned by the query.
Throws:
XBRLException

getAllRelationships

public List<Relationship> getAllRelationships()
                                       throws XBRLException
Specified by:
getAllRelationships in interface Analyser
Returns:
A list of all relationships in the data store that are accepted by the analyser's relationship filtration rules. Note that this can tend to overwhelm available physical resources when the data store is of significant size.
Throws:
XBRLException
See Also:
Analyser.getAllRelationships()

getStore

protected Store getStore()
Returns:
the store that the active relationships are persisted in.

getArcroles

public Set<URI> getArcroles()
                     throws XBRLException
Specified by:
getArcroles in interface Analyser
Returns:
a list of all arcroles for persisted relationships.
Throws:
XBRLException
See Also:
Analyser.getArcroles()

getArcroles

public Set<URI> getArcroles(URI linkRole)
                     throws XBRLException
Specified by:
getArcroles in interface Analyser
Parameters:
linkRole - the constraining link role value.
Returns:
a list of all arcroles for persisted relationships defined in extended links with the given link role.
Throws:
XBRLException
See Also:
Analyser.getArcroles(java.net.URI)

getLinkRoles

public Set<URI> getLinkRoles()
                      throws XBRLException
Specified by:
getLinkRoles in interface Analyser
Returns:
a list of all extended link roles for persisted relationships.
Throws:
XBRLException
See Also:
Analyser.getLinkRoles()

getLinkRoles

public Set<URI> getLinkRoles(URI arcrole)
                      throws XBRLException
Specified by:
getLinkRoles in interface Analyser
Parameters:
arcrole - the constraining arcrole value.
Returns:
a list of all link roles for extended links that contain arcs defining persisted relationships with the given arcrole.
Throws:
XBRLException
See Also:
Analyser.getLinkRoles(URI)

getRelationships

public List<Relationship> getRelationships(Set<URI> arcroles)
                                    throws XBRLException
Specified by:
getRelationships in interface Analyser
Parameters:
arcroles - The list of arcroles used to select the returned list of active relationships that have been persisted in the data store.
Returns:
A list of all active relationships that involve any one of the specified arcroles.
Throws:
XBRLException
See Also:
Analyser.getRelationships(Set)

getRelationships

public List<Relationship> getRelationships(URI linkRole,
                                           Set<URI> arcroles)
                                    throws XBRLException
Specified by:
getRelationships in interface Analyser
Parameters:
linkRole - The link role for the extended links that are allowed to contain the arcs defining the active relationships to be returned.
arcroles - The list of arcroles used to select the returned list of active relationships that have been persisted in the data store.
Returns:
A list of all active relationships that involve any one of the specified arcroles and that are in networks with the given link role.
Throws:
XBRLException
See Also:
Analyser.getRelationships(URI, Set)

getRelationships

public List<Relationship> getRelationships(URI linkRole,
                                           URI arcrole)
                                    throws XBRLException
Specified by:
getRelationships in interface Analyser
Parameters:
linkRole - The link role constraining the set of returned active relationships.
arcrole - The arcrole used to select the returned list of active relationships that have been persisted in the data store.
Returns:
A list of all active relationships that involve the specified arcrole and that have the specified link role.
Throws:
XBRLException
See Also:
Analyser.getRelationships(java.net.URI, java.net.URI)

getRelationships

public List<Relationship> getRelationships(URI arcrole)
                                    throws XBRLException
Specified by:
getRelationships in interface Analyser
Parameters:
arcrole - The arcrole used to select the returned list of active relationships that have been persisted in the data store.
Returns:
A list of all active relationships that involve the specified arcrole.
Throws:
XBRLException
See Also:
Analyser.getRelationships(java.net.URI)

getRelationshipsFrom

public List<Relationship> getRelationshipsFrom(String sourceIndex,
                                               Set<URI> arcroles)
                                        throws XBRLException
Specified by:
getRelationshipsFrom in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get relationships from.
arcroles - The arcroles used to select the returned list of active relationships that have been persisted in the data store.
Returns:
A list of all active relationships that involve any of the specified arcroles and that run from the specified source fragment.
Throws:
XBRLException
See Also:
Analyser.getRelationshipsFrom(java.lang.String, Set)

getRelationshipsFrom

public List<Relationship> getRelationshipsFrom(String sourceIndex,
                                               URI linkRole,
                                               Set<URI> arcroles)
                                        throws XBRLException
Specified by:
getRelationshipsFrom in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get relationships from.
linkRole - The link role constraining the set of returned active relationships.
arcroles - The arcroles used to select the returned list of active relationships that have been persisted in the data store.
Returns:
A list of all active relationships that involve any of the specified arcroles and that have the specified link role and that run from the specified source fragment.
Throws:
XBRLException
See Also:
Analyser.getRelationshipsFrom(java.lang.String, java.net.URI, Set)

getRelationshipsFrom

public SortedSet<Relationship> getRelationshipsFrom(String sourceIndex,
                                                    URI linkRole,
                                                    URI arcrole)
                                             throws XBRLException
Specified by:
getRelationshipsFrom in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get relationships from.
linkRole - The link role constraining the set of returned active relationships.
arcrole - The arcrole used to select the returned list of active relationships that have been persisted in the data store.
Returns:
A sorted set of all active relationships that involve the specified arcrole and that have the specified link role and that run from the specified source fragment, ordered by the arc order attribute value. The arcrole and link role is ignored if it is null.
Throws:
XBRLException
See Also:
Analyser.getRelationshipsFrom(java.lang.String, java.net.URI, java.net.URI)

getRelationshipsFrom

public List<Relationship> getRelationshipsFrom(String sourceIndex,
                                               URI arcrole)
                                        throws XBRLException
Specified by:
getRelationshipsFrom in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get relationships from.
arcrole - The arcrole used to select the returned list of active relationships that have been persisted in the data store.
Returns:
A list of all active relationships that involve the specified arcrole and that run from the specified source fragment.
Throws:
XBRLException
See Also:
Analyser.getRelationshipsFrom(java.lang.String, java.net.URI)

getRelationshipsTo

public List<Relationship> getRelationshipsTo(String targetIndex,
                                             Set<URI> arcroles)
                                      throws XBRLException
Specified by:
getRelationshipsTo in interface Analyser
Parameters:
targetIndex - The index of the fragment to get relationships to.
arcroles - The arcroles used to select the returned list of active relationships that have been persisted in the data store.
Returns:
A list of all active relationships that involve any of the specified arcroles and that run to the specified target fragment.
Throws:
XBRLException
See Also:
Analyser.getRelationshipsTo(java.lang.String, Set)

getRelationshipsTo

public List<Relationship> getRelationshipsTo(String targetIndex,
                                             URI linkRole,
                                             Set<URI> arcroles)
                                      throws XBRLException
Specified by:
getRelationshipsTo in interface Analyser
Parameters:
targetIndex - The index of the fragment to get relationships to.
linkRole - The link role constraining the set of returned active relationships.
arcroles - The arcroles used to select the returned list of active relationships that have been persisted in the data store.
Returns:
A list of all active relationships that involve any of the specified arcroles and that have the specified link role and that run to the specified target fragment.
Throws:
XBRLException
See Also:
Analyser.getRelationshipsTo(java.lang.String, java.net.URI, Set)

getRelationshipsTo

public SortedSet<Relationship> getRelationshipsTo(String targetIndex,
                                                  URI linkRole,
                                                  URI arcrole)
                                           throws XBRLException
Specified by:
getRelationshipsTo in interface Analyser
Parameters:
targetIndex - The index of the fragment to get relationships to.
linkRole - The link role constraining the set of returned active relationships.
arcrole - The arcrole used to select the returned list of active relationships that have been persisted in the data store.
Returns:
A sorted set of all active relationships that involve the specified arcrole and that have the specified link role and that run to the specified target fragment. The relationships are sorted by the order attributes on the arcs expressing them. The arcrole and link role is ignored if it is null.
Throws:
XBRLException
See Also:
Analyser.getRelationshipsTo(java.lang.String, java.net.URI, java.net.URI)

getRelationshipsTo

public List<Relationship> getRelationshipsTo(String targetIndex,
                                             URI arcrole)
                                      throws XBRLException
Specified by:
getRelationshipsTo in interface Analyser
Parameters:
targetIndex - The index of the fragment to get relationships to.
arcrole - The arcrole used to select the returned list of active relationships that have been persisted in the data store.
Returns:
A list of all active relationships that involve the specified arcrole and that run to the specified target fragment.
Throws:
XBRLException
See Also:
Analyser.getRelationshipsTo(java.lang.String, java.net.URI)

getRootRelationships

public List<Relationship> getRootRelationships(URI linkRole,
                                               URI arcrole)
                                        throws XBRLException
Specified by:
getRootRelationships in interface Analyser
Parameters:
linkRole - The link role of the network.
arcrole - The arcrole of the network.
Returns:
the relationships that run from root fragments in the network with the specified link role and arcrole. If the arcrole or link role is null it is ignored.
Throws:
XBRLException
See Also:
Analyser.getRootRelationships(java.net.URI, java.net.URI)

getRoots

public <F extends Fragment> Set<F> getRoots(URI linkRole,
                                            URI arcrole)
                                 throws XBRLException
Specified by:
getRoots in interface Analyser
Type Parameters:
F - The fragment type
Parameters:
linkRole - The link role URI
arcrole - The arcrole URI
Returns:
the list of fragments that are roots of networks with the given link role and arcrole.
Throws:
XBRLException
See Also:
Analyser.getRoots(java.net.URI, java.net.URI)

getRootIndices

public Set<String> getRootIndices(URI linkRole,
                                  URI arcrole)
                           throws XBRLException
Specified by:
getRootIndices in interface Analyser
Parameters:
linkRole - The link role defining the network
arcrole - The arcrole defining the network
Returns:
the set of indices of the root fragments in the network. If the arcrole or link role is null it is ignored.
Throws:
XBRLException
See Also:
Analyser.getRootIndices(java.net.URI, java.net.URI)

getLabelRelationships

public List<Relationship> getLabelRelationships(String sourceIndex)
                                         throws XBRLException
Specified by:
getLabelRelationships in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get the labels for.
Returns:
a list of active relationships to labels from the fragment identified by the specified index.
Throws:
XBRLException
See Also:
Analyser.getLabelRelationships(java.lang.String)

getLabelRelationshipsByLanguage

public List<Relationship> getLabelRelationshipsByLanguage(String sourceIndex,
                                                          String language)
                                                   throws XBRLException
Specified by:
getLabelRelationshipsByLanguage in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get the labels for.
language - The XML language code identifying the language of the label.
Returns:
a list of active relationships to labels from the fragment identified by the specified index and with the specified language. The list is empty if no relationships match the specified selection criteria.
Throws:
XBRLException
See Also:
Analyser.getLabelRelationshipsByLanguage(java.lang.String, java.lang.String)

getLabelRelationshipsByLanguageAndRole

public List<Relationship> getLabelRelationshipsByLanguageAndRole(String sourceIndex,
                                                                 String language,
                                                                 URI role)
                                                          throws XBRLException
Specified by:
getLabelRelationshipsByLanguageAndRole in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get the labels for.
language - The XML language code identifying the language of the label.
role - A required resource role for the labels.
Returns:
a list of active relationships to labels that match the selection criteria.
Throws:
XBRLException
See Also:
Analyser.getLabelRelationshipsByLanguageAndRole(java.lang.String, java.lang.String, java.net.URI)

getLabelRelationshipsByLanguages

public List<Relationship> getLabelRelationshipsByLanguages(String sourceIndex,
                                                           List<String> languages)
                                                    throws XBRLException
Specified by:
getLabelRelationshipsByLanguages in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get the labels for.
languages - The list of XML language code identifying the language of the label, in order of preference with the first value being the most preferred. A null value in the list implies that the full set of labels that match the other criteria will be selected.
Returns:
a list of active relationships to labels that match the selection criteria. The list is empty if no relationships match the specified selection criteria.
Throws:
XBRLException
See Also:
Analyser.getLabelRelationshipsByLanguages(java.lang.String, java.util.List)

getLabelRelationshipsByRole

public List<Relationship> getLabelRelationshipsByRole(String sourceIndex,
                                                      URI role)
                                               throws XBRLException
Specified by:
getLabelRelationshipsByRole in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get the labels for.
role - A required resource role for the labels.
Returns:
a list of active relationships to labels that match the selection criteria.
Throws:
XBRLException
See Also:
Analyser.getLabelRelationshipsByRole(java.lang.String, java.net.URI)

getLabelRelationshipsByRoles

public List<Relationship> getLabelRelationshipsByRoles(String sourceIndex,
                                                       List<String> languages,
                                                       List<URI> roles)
                                                throws XBRLException
Specified by:
getLabelRelationshipsByRoles in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get the labels for.
languages - The list of XML language code identifying the language of the label, in order of preference with the first value being the most preferred. A null value in the list implies that the full set of labels that match the other criteria will be selected.
roles - A list of resource roles for the labels in order of preference with the first role in the list being the most preferred XLink role attribute value. A null value in the list implies that the full set of labels that match the other criteria will be selected.
Returns:
a list of active relationships to labels that match the selection criteria. Note that label language preferences get precedence over label role preferences.
Throws:
XBRLException
See Also:
Analyser.getLabelRelationshipsByRoles(java.lang.String, java.util.List, java.util.List)

getLabelRelationshipsByRoles

public List<Relationship> getLabelRelationshipsByRoles(String sourceIndex,
                                                       List<URI> roles)
                                                throws XBRLException
Specified by:
getLabelRelationshipsByRoles in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get the labels for.
roles - A list of resource roles for the labels in order of preference with the first role in the list being the most preferred XLink role attribute value. A null value in the list implies that the full set of labels that match the other criteria will be selected.
Returns:
a list of active relationships to labels that match the selection criteria.
Throws:
XBRLException
See Also:
Analyser.getLabelRelationshipsByRoles(java.lang.String, java.util.List)

getReferenceRelationships

public List<Relationship> getReferenceRelationships(String sourceIndex)
                                             throws XBRLException
Specified by:
getReferenceRelationships in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get the references for.
Returns:
a list of active relationships to references from the fragment identified by the specified index.
Throws:
XBRLException
See Also:
Analyser.getReferenceRelationships(java.lang.String)

getReferenceRelationshipsByLanguage

public List<Relationship> getReferenceRelationshipsByLanguage(String sourceIndex,
                                                              String language)
                                                       throws XBRLException
Specified by:
getReferenceRelationshipsByLanguage in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get the references for.
language - The XML language code identifying the language of the reference.
Returns:
a list of active relationships to references from the fragment identified by the specified index and with the specified language. The list is empty if no relationships match the specified selection criteria.
Throws:
XBRLException
See Also:
Analyser.getReferenceRelationshipsByLanguage(java.lang.String, java.lang.String)

getReferenceRelationshipsByLanguageAndRole

public List<Relationship> getReferenceRelationshipsByLanguageAndRole(String sourceIndex,
                                                                     String language,
                                                                     URI role)
                                                              throws XBRLException
Specified by:
getReferenceRelationshipsByLanguageAndRole in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get the references for.
language - The XML language code identifying the language of the reference.
role - A required resource role for the references.
Returns:
a list of active relationships to references that match the selection criteria.
Throws:
XBRLException
See Also:
Analyser.getReferenceRelationshipsByLanguageAndRole(java.lang.String, java.lang.String, java.net.URI)

getReferenceRelationshipsByLanguages

public List<Relationship> getReferenceRelationshipsByLanguages(String sourceIndex,
                                                               List<String> languages)
                                                        throws XBRLException
Specified by:
getReferenceRelationshipsByLanguages in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get the references for.
languages - The list of XML language code identifying the language of the reference, in order of preference with the first value being the most preferred. A null value in the list implies that the full set of references that match the other criteria will be selected.
Returns:
a list of active relationships to references that match the selection criteria. The list is empty if no relationships match the specified selection criteria.
Throws:
XBRLException
See Also:
Analyser.getReferenceRelationshipsByLanguages(java.lang.String, java.util.List)

getReferenceRelationshipsByRole

public List<Relationship> getReferenceRelationshipsByRole(String sourceIndex,
                                                          URI role)
                                                   throws XBRLException
Specified by:
getReferenceRelationshipsByRole in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get the references for.
role - A required resource role for the references.
Returns:
a list of active relationships to references that match the selection criteria.
Throws:
XBRLException
See Also:
Analyser.getReferenceRelationshipsByRole(java.lang.String, java.net.URI)

getReferenceRelationshipsByRoles

public List<Relationship> getReferenceRelationshipsByRoles(String sourceIndex,
                                                           List<String> languages,
                                                           List<URI> roles)
                                                    throws XBRLException
Specified by:
getReferenceRelationshipsByRoles in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get the references for.
languages - The list of XML language code identifying the language of the reference, in order of preference with the first value being the most preferred. A null value in the list implies that the full set of references that match the other criteria will be selected.
roles - A list of resource roles for the references in order of preference with the first role in the list being the most preferred XLink role attribute value. A null value in the list implies that the full set of references that match the other criteria will be selected.
Returns:
a list of active relationships to references that match the selection criteria.
Throws:
XBRLException
See Also:
Analyser.getReferenceRelationshipsByRoles(java.lang.String, java.util.List, java.util.List)

getReferenceRelationshipsByRoles

public List<Relationship> getReferenceRelationshipsByRoles(String sourceIndex,
                                                           List<URI> roles)
                                                    throws XBRLException
Specified by:
getReferenceRelationshipsByRoles in interface Analyser
Parameters:
sourceIndex - The index of the fragment to get the references for.
roles - A list of resource roles for the references in order of preference with the first role in the list being the most preferred XLink role attribute value. A null value in the list implies that the full set of references that match the other criteria will be selected.
Returns:
a list of active relationships to references that match the selection criteria.
Throws:
XBRLException
See Also:
Analyser.getReferenceRelationshipsByRoles(java.lang.String, java.util.List)

getRelationships

public List<Relationship> getRelationships(String sourceIndex,
                                           String targetIndex,
                                           URI linkRole,
                                           URI arcrole)
                                    throws XBRLException
Specified by:
getRelationships in interface Analyser
Parameters:
sourceIndex - The source index to match.
targetIndex - The target index to match.
linkRole - The link role to match.
arcrole - The arcrole to match.
Returns:
a list of persisted relationships matching the specified criteria. The arcrole and linkrole are ignored if they are equal to null.
Throws:
XBRLException
See Also:
Analyser.getRelationships(String, String, URI, URI)

Get Java XBRL API implementation at SourceForge.net. Fast, secure and Free Open Source software downloads