fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major/**
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * Copyright (c) 2008 Sun Microsystems Inc. All Rights Reserved
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * The contents of this file are subject to the terms
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * of the Common Development and Distribution License
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * (the License). You may not use this file except in
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * compliance with the License.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * You can obtain a copy of the License at
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * https://opensso.dev.java.net/public/CDDLv1.0.html or
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * opensso/legal/CDDLv1.0.txt
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * See the License for the specific language governing
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * permission and limitations under the License.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * When distributing Covered Code, include this CDDL
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * Header Notice in each file and include the License file
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * at opensso/legal/CDDLv1.0.txt.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * If applicable, add the following below the CDDL Header,
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * with the fields enclosed by brackets [] replaced by
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * your own identifying information:
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * "Portions Copyrighted [year] [name of copyright owner]"
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * $Id: MigrateFromInstFinderStore.java,v 1.2 2008/06/25 05:51:22 qcheng Exp $
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major */
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorpackage com.sun.identity.install.tools.configurator;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport java.io.File;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport java.util.ArrayList;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport java.util.Map;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport java.util.StringTokenizer;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport java.util.TreeMap;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.admin.ToolsConfiguration;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.util.Debug;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.util.LocalizedMessage;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major/**
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * This class reads the instance finder file, belonging to previous product.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major */
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorpublic class MigrateFromInstFinderStore extends OrderedPropertyStore {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major /**
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * get the singleton of MigrateFromInstFinderStore.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * @return MigrateFromInstFinderStore
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * @throws InstallException thrown if reading instance finder file fails.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major */
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public static synchronized MigrateFromInstFinderStore getInstance()
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major throws InstallException {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major if (instanceIdentifier == null) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major instanceIdentifier = new MigrateFromInstFinderStore();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major File file = new File(getTranslateFile());
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major if (file.exists() && file.canRead()) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Debug.log("MigrateFromInstFinderStore : " +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "initializing instance by loading" +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major " the properties");
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major instanceIdentifier.load();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major } else {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Debug.log("MigrateFromInstFinderStore : " +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "Error - can not find old product finder store. " +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "File Name:" +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major getTranslateFile());
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Object[] args = { getTranslateFile() };
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major LocalizedMessage message = LocalizedMessage.get(
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major LOC_IS_ERR_IFINDER_FILE_NOT_EXIST, args);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major throw new InstallException(message);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return instanceIdentifier;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major /**
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * return the instance name to be migrated from.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * @param map
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * @param keysToUse
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * @return
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * @throws InstallException
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major */
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public String getInstanceName(Map map, ArrayList keysToUse)
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major throws InstallException {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String uniqueKey = createUniqueKey(map, keysToUse);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String instanceName = getProperty(uniqueKey);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major if (instanceName == null) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Debug.log("MigrateFromInstFinderStore.getInstanceName(): " +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "instanceName not " +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "found in the properties. Returning null value");
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Object[] args = { instanceName };
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major LocalizedMessage message = LocalizedMessage.get(
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major LOC_IS_ERR_IFINDER_INSTANCE_NOT_FOUND, args);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major throw new InstallException(message);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major } else {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Debug.log("MigrateFromInstFinderStore.getInstanceName(): " +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major instanceName +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major " found in the properties.");
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return instanceName;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major /**
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * get all instances' instance finder data.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * @param mapKeys
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * @return Map of all product's install details.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * @throws InstallException
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major */
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public Map getAllProductDetails(ArrayList mapKeys) throws InstallException {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major int count = size();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Map productDetails = new TreeMap();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major for(int i=1; i<count; i++) { // Ignore the first one, it is counter
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String instanceName = getPropertyValue(i);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String key = getPropertyKey(i);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Map iFinderValues = extractInstanceFinderValues(key, instanceName,
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major mapKeys);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major productDetails.put(instanceName, iFinderValues);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return productDetails;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private Map extractInstanceFinderValues(String key, String instanceName,
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major ArrayList mapKeys) throws InstallException {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Map iFinderValues = new TreeMap();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major StringTokenizer st = new StringTokenizer(key,
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major STR_IS_LOOK_UP_KEY_FIELD_SEP);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major int count = mapKeys.size();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major if (count != st.countTokens()) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Debug.log("MigrateFromInstFinderStore." +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "extractInstanceFinderValues(): " +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "Error - size of mapKeys and number of tokens " +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "are not same. key = " + key + ", mapKeys = " +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major mapKeys.toString());
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Object[] args = { instanceName };
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major LocalizedMessage message = LocalizedMessage.get(
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major LOC_IS_ERR_EXTRACT_IFINDER_DATA);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major throw new InstallException(message);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major for (int i=0; i<count; i++) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String mapKey = (String) mapKeys.get(i);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major iFinderValues.put(mapKey, st.nextElement());
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return iFinderValues;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private MigrateFromInstFinderStore() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private String createUniqueKey(Map map, ArrayList keysToUse) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String uniqueKey = null;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major if (map != null && !map.isEmpty()) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major // The keysToUse is an ArrayList which contains the keys to use in
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major // the order (as defined in config file).
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major StringBuffer sb = new StringBuffer();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major int count = keysToUse.size();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major for (int i = 0; i < count; i++) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String key = (String) keysToUse.get(i);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major // The value should never be null. All instance finder
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major // interactions need a value.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String value = (String) map.get(key);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String newKey = replaceChars(value, CHR_CHARS_TO_REPLACE,
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major CHR_REPLACE_WITH_CHAR);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major sb.append(newKey);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major sb.append(STR_IS_LOOK_UP_KEY_FIELD_SEP);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major uniqueKey = sb.toString();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Debug.log("MigrateFromInstFinderStore." +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "createUniqueKey() - key: " + uniqueKey);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return uniqueKey;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private String replaceChars(String replaceStr, char[] oldChars,
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major char newChar) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String returnStr = replaceStr;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major if (replaceStr != null && oldChars != null) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major char[] replaceStrChar = replaceStr.toCharArray();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major int l1 = replaceStrChar.length;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major int l2 = oldChars.length;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major for (int i=0; i<l1; i++) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major for (int j=0; j<l2; j++) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major if (replaceStrChar[i] == oldChars[j]) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major replaceStrChar[i] = newChar;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major returnStr = new String(replaceStrChar);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return returnStr;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public String toString() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String displayStr = "*** BEGIN MigrateFromInstFinderStore Data " +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "*******" +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major LINE_SEP + super.toString() + LINE_SEP +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "*** END MigrateFromInstFinderStore Data " +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "**********" +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major LINE_SEP;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return displayStr;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major /**
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * get product home of previous product.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * @return
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major */
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public static String getProductHome() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return productHome;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major /**
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * set product home of previous product.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * @oldProductHome product home of previous product.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major */
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public static void setProductHome(String oldProductHome) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major productHome = oldProductHome;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major //////////////////////////////////////////////////////////////////////////
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major // Overridden abstract methods of PropertyStore
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major //////////////////////////////////////////////////////////////////////////
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public String getFile() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return getTranslateFile();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public static String getTranslateFile() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return getProductHome() + TRANSLATION_FILE;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public static String getRelativeTranslateFile() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return TRANSLATION_FILE;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public String getFileHeader() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return STR_IS_LOOK_UP_FILE_HEADER;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public LocalizedMessage getLoadErrorMessage() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return LocalizedMessage.get(LOC_IS_ERR_LOAD_INSTALL_STATE);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public LocalizedMessage getSaveErrorMessage() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return LocalizedMessage.get(LOC_IS_ERR_SAVE_INSTALL_STATE);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public LocalizedMessage getInvalidLineErrorMessage(int lineNumber) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Debug.log("MigrateFromInstFinderStore: An error occcurred while " +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "reading " + "state file " + getFile() +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major ". Invalid data found at line " +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major lineNumber + "Missing delimiter: " + STR_KEY_VALUE_SEP);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return getLoadErrorMessage(); // Generic message is sufficient
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public LocalizedMessage getInvalidKeyErrorMessage(int lineNumber) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Debug.log("MigrateFromInstFinderStore: An error occcurred while " +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "reading " + "state file " +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major getFile() + ". Invalid key found at line " +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major lineNumber);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return getLoadErrorMessage(); // Generic message is sufficient
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major //////////////////////////////////////////////////////////////////////////
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private static MigrateFromInstFinderStore instanceIdentifier = null;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private static final char[] CHR_CHARS_TO_REPLACE = { '=', ' ' };
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private static final char CHR_REPLACE_WITH_CHAR = '-';
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private static String productHome = null;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major /** Field STR_IS_LOOK_UP_KEY_FIELD_SEP **/
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private static final String STR_IS_LOOK_UP_KEY_FIELD_SEP = "|";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major /** Field STR_IS_LOOK_UP_FILE_HEADER **/
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private static final String STR_IS_LOOK_UP_FILE_HEADER =
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "# Product Instances Translation Lookup File"; // # is necessary
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private static String TRANSLATION_FILE =
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major FILE_SEP + "data" + FILE_SEP +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major ".am" + ToolsConfiguration.getProductShortName() +
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "Lookup";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private static final String LOC_IS_ERR_EXTRACT_IFINDER_DATA =
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "IS_ERR_EXTRACT_IFINDER_DATA";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private static final String LOC_IS_ERR_IFINDER_FILE_NOT_EXIST =
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "IS_ERR_IFINDER_FILE_NOT_EXIST";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private static final String LOC_IS_ERR_IFINDER_INSTANCE_NOT_FOUND =
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "IS_ERR_IFINDER_INSTANCE_NOT_FOUND";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major}