/****************************************************************************** * Copyright (c) 2016 Oracle * 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: * Konstantin Komissarchik - initial implementation and ongoing maintenance ******************************************************************************/ package org.eclipse.sapphire.samples.contacts.internal; import org.eclipse.sapphire.Element; import org.eclipse.sapphire.Value; import org.eclipse.sapphire.ValueProperty; import org.eclipse.sapphire.modeling.Status; import org.eclipse.sapphire.samples.contacts.Contact; import org.eclipse.sapphire.services.ValidationService; /** * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a> */ public abstract class ConnectionNameValidationService extends ValidationService { @Override protected Status compute() { final Value<?> value = context( Element.class ).property( context( ValueProperty.class ) ); final String assistantName = value.text(); final String contactName = value.element().nearest( Contact.class ).getName().text(); if( assistantName != null && contactName != null && assistantName.equals( contactName ) ) { return createErrorStatus(); } return Status.createOkStatus(); } protected abstract Status createErrorStatus(); }