All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.vectorpublish.desktop.vp.api.InheritanceExclusion Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2016, Peter Rader. All rights reserved.
 *  ___ ___               __                 ______         __     __  __         __
 * |   |   |.-----..----.|  |_ .-----..----.|   __ \.--.--.|  |--.|  ||__|.-----.|  |--.
 * |   |   ||  -__||  __||   _||  _  ||   _||    __/|  |  ||  _  ||  ||  ||__ --||     |
 *  \_____/ |_____||____||____||_____||__|  |___|   |_____||_____||__||__||_____||__|__|
 *
 * http://www.gnu.org/licenses/gpl-3.0.html
 */
package net.vectorpublish.desktop.vp.api;

import net.vectorpublish.desktop.vp.api.InheritanceExclusion.Category;
import net.vectorpublish.desktop.vp.api.history.ReadOnlyHistoryStepDataBean;
import net.vectorpublish.desktop.vp.api.layer.LayerSelectionListener;
import net.vectorpublish.desktop.vp.api.ui.DocumentSelectionChangeListener;
import net.vectorpublish.desktop.vp.api.ui.kf.Keyframer;

/**
 * Exclusion interface.
 * 

* A workaround to not let you extend in example from * {@link ReadOnlyHistoryStepDataBean} and a {@link Keyframer}. * *

* The compiler would not compile and give this message:
* * The interface InheritanceExclusion cannot be implemented more than once with * different arguments: InheritanceExclusion<DrawParticipant> and * InheritanceExclusion<Serializable> *

* The exclusion does not exclude events of the same category, so you can * inherit from {@link DocumentSelectionChangeListener} and * {@link LayerSelectionListener}. */ public interface InheritanceExclusion { /** * A Category to differ interfaces that are not allowed to inherit each * other. */ public abstract interface Category { } /** * A CDIBean, used to autowire/inject others and itself. *

* In vectorpublish the autowire-candidates are only found at startup. */ public interface CDIBean extends Category { } /** *Used to save a history */ public interface HistoryCategory extends Category { } public interface LayerNode extends Category { } public interface Participant extends Category { } public interface Storable extends Category { } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy