/******************************************************************************* * Copyright (c) 2006-2010 eBay Inc. All Rights Reserved. * 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 *******************************************************************************/ /** * */ package org.ebayopensource.turmeric.repositorysystem.imp.validators; import java.util.ArrayList; import java.util.List; import org.ebayopensource.turmeric.eclipse.exception.validation.ValidationInterruptedException; import org.ebayopensource.turmeric.eclipse.maven.core.utils.MavenCoreUtils; import org.ebayopensource.turmeric.eclipse.utils.lang.StringUtil; import org.ebayopensource.turmeric.eclipse.utils.plugin.EclipseMessageUtils; import org.ebayopensource.turmeric.eclipse.validator.core.AbstractSOAValidator; import org.ebayopensource.turmeric.repositorysystem.imp.resources.Messages; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; /** * The Class TurmericServiceValidator. * * @author yayu */ public class TurmericServiceValidator extends AbstractSOAValidator { /** * Instantiates a new turmeric service validator. */ public TurmericServiceValidator() { super(); } /** * {@inheritDoc} */ @Override public IStatus validate(Object obj) throws ValidationInterruptedException { IStatus status = super.validate(obj); if (status.isOK()) { try { if (obj instanceof String) { status = validateInputs((String) obj); } else if (obj instanceof String[]) { status = validateInputs((String[]) obj); } else if (obj instanceof IPath) { status = validateInputs(obj.toString()); } } catch (Exception e) { throw new RuntimeException(e); } } return status; } private IStatus validateInputs(String... inputs) throws Exception { boolean[] result; result = MavenCoreUtils.serviceExists(inputs); final List<IStatus> statuses = new ArrayList<IStatus>(result.length); for (int i = 0; i < result.length; i++) { if (result[i] == true) { statuses.add(getBasicStatusModel( StringUtil.formatString(Messages.ERROR_SERVICE_ALREADY_EXIST, inputs[i]) )); } } return statuses.isEmpty() ? Status.OK_STATUS : EclipseMessageUtils.createErrorMultiStatus(statuses, Messages.ERROR_SERVICE_VALIDATION_FAILED); } }