public function getGenericArc( $arcRole, $fromRoleUri, $fromResourceName = null, $fromPath = null, $arcLinkbase = null, $fromLinkbase = null, $toLinkbase = null )
	{
		if ( ! isset( $this->genericRoles['roles'] ) ) return false;

		$results = array();

		foreach ( $this->genericRoles['roles'] as $roleUri => $role )
		{
			if ( ! isset( $role['arcroles'] ) || ! isset( $role['arcroles'][ $arcRole ] ) ) continue;

			foreach ( $role['arcroles'][ $arcRole ]['links'] as $linkName => $arcElements )
			{
				foreach ( $arcElements['arcelements'] as $arcName => $arcs )
				{
					foreach ( $arcs['arcs'] as $fromLabel => $tos )
					{
						if ( ! is_null( $fromResourceName ) && $fromLabel != $fromResourceName ) continue;

						foreach ( $tos as $toLabel => $to )
						{
							foreach ( $to as $arc )
							{
								if ( $arc['fromRoleUri'] != $fromRoleUri ) continue;
								if ( ! is_null( $fromPath ) && $fromPath != $arc['frompath'] ) continue;
								if ( ! is_null( $arcLinkbase ) && $arcLinkbase != $arc['linkbase'] ) continue;
								if ( ! is_null( $fromLinkbase ) && $fromLinkbase != $arc['fromlinkbase'] ) continue;
								if ( ! is_null( $toLinkbase ) && $toLinkbase != $arc['tolinkbase'] ) continue;
								$results[] = $arc;
							}
						}
					}
				}
			}
		}

		return $results;
	}