/*******************************************************************************
* Copyright 2012 University of Southern California
*
* 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.
*
* This code was developed by the Information Integration Group as part
* of the Karma project at the Information Sciences Institute of the
* University of Southern California. For more information, publications,
* and related projects, please see: http://www.isi.edu/integration
******************************************************************************/
package edu.isi.karma.modeling.alignment;
import java.util.HashMap;
public class LinkIdFactory {
private HashMap<String, Integer> linksUris = new HashMap<String, Integer>();
public static final String separator = "---";
// public String getLinkId(String uri) {
//
// int index;
// String id;
//
// if (linksUris.containsKey(uri)) {
//
// index = linksUris.get(uri).intValue();
// linksUris.put(uri, ++index);
// id = uri + "" + index;
//
// } else {
// index = 1;
// linksUris.put(uri, index);
// id = uri + "" + index;
//// id = uriString;
// }
// return id;
// }
public static String getLinkId(String uri, String sourceId, String targetId) {
return sourceId + separator + uri + separator + targetId;
}
public static String getLinkUri(String linkId) {
String[] parts = linkId.split(separator);
if (parts != null && parts.length == 3)
return parts[1];
else
return null;
}
public static String getLinkSourceId(String linkId) {
String[] parts = linkId.split(separator);
if (parts != null && parts.length == 3)
return parts[0];
else
return null;
}
public static String getLinkTargetId(String linkId) {
String[] parts = linkId.split(separator);
if (parts != null && parts.length == 3)
return parts[2];
else
return null;
}
public boolean duplicateUri(String uriString) {
return this.linksUris.containsKey(uriString);
}
public int lastIndexOf(String uri) {
if (linksUris.containsKey(uri))
return linksUris.get(uri).intValue();
else
return -1;
}
}