/**
 * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
 * 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:
 *         Florian Pirchner - Initial implementation
 */
package org.eclipse.osbp.vaaclipse.ui.preferences.model.validation;

import org.eclipse.osbp.vaaclipse.ui.preferences.model.ListCrud;
import org.eclipse.osbp.vaaclipse.ui.preferences.model.ListFold;

/**
 * A sample validator interface for
 * {@link org.eclipse.osbp.vaaclipse.ui.preferences.model.ListEditor}. This doesn't
 * really do anything, and it's not a real EMF artifact. It was generated by the
 * org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's
 * code generator can be extended. This can be disabled with -vmargs
 * -Dorg.eclipse.emf.examples.generator.validator=false.
 */
public interface ListEditorValidator {
	boolean validate();

	boolean validateListCrud(ListCrud value);

	boolean validateListFold(ListFold value);
}
