blob: acc9a12f2bfa1ecdea17b9e36da3978d36a3b025 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.wst.ws.internal.explorer.platform.uddi.actions;
import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*;
import org.eclipse.wst.ws.internal.explorer.platform.util.*;
import java.text.*;
import java.io.*;
public class UpdateRegistryAction extends UpdateAction
{
public UpdateRegistryAction(Controller controller)
{
super(controller,false);
}
protected boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
{
String nameModifiedState = parser.getParameter(UDDIActionInputs.NAME_MODIFIED);
String name = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_REGISTRY_NAME);
String[] userDefinedCategoryTModelKeys = parser.getParameterValues(UDDIActionInputs.CATEGORY_TMODEL_KEY);
String[] userDefinedCategoryData = parser.getParameterValues(UDDIActionInputs.CATEGORY_FILENAME);
boolean inputsValid = true;
UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
MessageQueue messageQueue = uddiPerspective.getMessageQueue();
if (nameModifiedState != null && name != null)
{
boolean isModified = Boolean.valueOf(nameModifiedState).booleanValue();
String newName;
if (isModified)
newName = name;
else
newName = (String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_REGISTRY_NAME);
propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_REGISTRY_NAME,newName);
if (!Validator.validateString(name))
{
inputsValid = false;
formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_REGISTRY_NAME);
messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_NAME"));
}
}
else
removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_REGISTRY_NAME);
if (userDefinedCategoryTModelKeys != null && userDefinedCategoryData != null)
{
RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
for (int i=0;i<userDefinedCategoryTModelKeys.length;i++)
{
CategoryModel userDefinedCategory = regElement.getUserDefinedCategory(userDefinedCategoryTModelKeys[i]);
// TODO: Move UDDIPreferenceContext down to org.eclipse.wst.ws
// UDDIPreferenceContext context = WebServicePlugin.getInstance().getUDDIPreferenceContext();
// userDefinedCategory.setColumnDelimiter(context.getUddiCatDataColumnDelimiter());
// userDefinedCategory.setStringDelimiter(context.getUddiCatDataStringDelimiter());
userDefinedCategory.setColumnDelimiter("#");
userDefinedCategory.setStringDelimiter("\"");
String displayName = userDefinedCategory.getDisplayName();
if (userDefinedCategoryData[i] == null || userDefinedCategoryData[i].length() < 1)
{
inputsValid = false;
messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE",displayName));
formToolPI.flagRowError(UDDIActionInputs.USER_DEFINED_CATEGORIES,userDefinedCategoryTModelKeys[i]);
}
else
{
byte rc = userDefinedCategory.loadData(new BufferedReader(new StringReader(userDefinedCategoryData[i])));
switch (rc)
{
case CategoryModel.OPERATION_SUCCESSFUL:
messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_USER_DEFINED_CATEGORY_DATA_LOADED",displayName));
break;
case CategoryModel.ERROR_FILE:
inputsValid = false;
ParseException pe = (ParseException)userDefinedCategory.getErrorException();
String[] args1 = {String.valueOf(pe.getErrorOffset()),displayName,pe.getMessage(),userDefinedCategory.getCategoryKey()};
messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_FORMAT",args1));
formToolPI.flagRowError(UDDIActionInputs.USER_DEFINED_CATEGORIES,userDefinedCategoryTModelKeys[i]);
break;
case CategoryModel.ERROR_CATEGORY_KEY:
default:
inputsValid = false;
String[] args2 = {displayName,userDefinedCategory.getErrorException().getMessage(),userDefinedCategory.getCategoryKey()};
messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_KEY",args2));
formToolPI.flagRowError(UDDIActionInputs.USER_DEFINED_CATEGORIES,userDefinedCategoryTModelKeys[i]);
}
}
}
}
return inputsValid;
}
public final boolean refreshFromRegistry()
{
return true;
}
public final boolean run()
{
UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
MessageQueue messageQueue = uddiPerspective.getMessageQueue();
String name = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_REGISTRY_NAME);
RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
regElement.setName(name);
regNode_.getTreeElement().setName(name);
messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_REGISTRY_UPDATED",name));
return true;
}
}