/* Copyright (c) 2008 Google Inc.
*
* 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.
*/
package sample.gtt;
import java.net.MalformedURLException;
import java.net.URL;
/**
* Contains constants for the various feed uris.
*
*
*/
public class FeedUris {
private static String baseUrl = "https://translate.google.com/toolkit/feeds";
/**
* Prevent instantiation of utility function
*/
private FeedUris() {
}
/**
* @param baseUrlArg the base url for the feeds
*/
public static void setBaseUrl(String baseUrlArg) {
baseUrl = baseUrlArg;
}
/**
* Returns the documents feed url.
*/
public static URL getDocumentsFeedUrl() throws MalformedURLException {
return new URL(baseUrl + "/documents");
}
/**
* Returns the feed url for given document.
*
* @param docId id of the document whose feed url is requried
*/
public static URL getDocumentFeedUrl(String docId)
throws MalformedURLException {
String format = baseUrl + "/documents/%s";
return createUrl(format, docId);
}
/**
* Returns the feed url to use for deleting the given document.
*
* @param docId id of the document whose feed url is requried
*/
public static URL getDocumentPermDeleteUrl(String docId)
throws MalformedURLException {
String format = baseUrl + "/documents/%s?delete=true";
return createUrl(format, docId);
}
/**
* Returns the feed url to use for downloading the given document.
*
* @param docId id of the document whose feed url is requried
*/
public static URL getDocumentDownloadFeedUrl(String docId)
throws MalformedURLException {
String format = baseUrl + "/documents/export/%s";
return createUrl(format, docId);
}
/**
* Returns the translation memories feed url.
*/
public static URL getTranslationMemoriesFeedUrl()
throws MalformedURLException {
return new URL(baseUrl + "/tm");
}
/**
* Returns the feed url for given translation memory.
*
* @param docId id of the translation memory whose feed url is requried
*/
public static URL getTranslationMemoryFeedUrl(String tmId)
throws MalformedURLException {
String format = baseUrl + "/tm/%s";
return createUrl(format, tmId);
}
/**
* Returns the glossaries feed url.
*/
public static URL getGlossariesFeedUrl() throws MalformedURLException {
return new URL(baseUrl + "/glossary");
}
/**
* Returns the feed url for given glossary.
*
* @param docId id of the glossary whose feed url is requried
*/
public static URL getGlossaryFeedUrl(String glossaryId)
throws MalformedURLException {
String format = baseUrl + "/glossary/%s";
return createUrl(format, glossaryId);
}
/**
* Returns the acl feeds url for given feed and entryId.
*
* @param feedName the name of the feed, one of {'documents, 'tm, 'glossary'}
* @param entryId id of the document/translation memory/glossary
* whose feed url is requried
*/
public static URL getAclFeedUrl(String feedName, String entryId)
throws MalformedURLException {
String format = baseUrl + "/acl/%s/%s";
return createUrl(format, feedName, entryId);
}
/**
* Returns the acl feeds url for given feed, entryId and email id.
*
* @param feedName the name of the feed, one of {'documents, 'tm, 'glossary'}
* @param entryId id of the document/translation memory/glossary
* whose feed url is requried
* @param emailId email id of the person relative to whom the feed url is
* required.
*/
public static URL getAclFeedUrl(String feedName, String entryId,
String emailId) throws MalformedURLException {
String format = baseUrl + "/acl/%s/%s/%s";
return createUrl(format, feedName, entryId, emailId);
}
private static URL createUrl(String format, Object... args)
throws MalformedURLException {
String feedUrl = String.format(format, args);
return new URL(feedUrl);
}
}