1 /*
2  * Copyright (c) 2019 Helmut Neemann.
3  * Use of this source code is governed by the GPL v3 license
4  * that can be found in the LICENSE file.
5  */
6 package de.neemann.digital.draw.library;
7 
8 import de.neemann.digital.core.element.ElementAttributes;
9 import de.neemann.digital.core.element.ElementTypeDescription;
10 import de.neemann.digital.draw.shapes.ShapeFactory;
11 
12 /**
13  * Library interface used by the model creator
14  */
15 public interface LibraryInterface {
16 
17     /**
18      * @return the shape factory
19      */
getShapeFactory()20     ShapeFactory getShapeFactory();
21 
22     /**
23      * Creates a element description.
24      *
25      * @param elementName the name of the element
26      * @param attr        the elements attributes
27      * @return the ElementTypeDescription
28      * @throws ElementNotFoundException ElementNotFoundException
29      */
getElementType(String elementName, ElementAttributes attr)30     ElementTypeDescription getElementType(String elementName, ElementAttributes attr) throws ElementNotFoundException;
31 }
32