/* * This file is part of LaTeXDraw. * Copyright (c) 2005-2017 Arnaud BLOUIN * LaTeXDraw is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later version. * LaTeXDraw is distributed without any warranty; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. */ package net.sf.latexdraw.parsers.svg; import java.util.Objects; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** * Defines the SVG tag <code>defs</code>. * @author Arnaud BLOUIN */ public class SVGDefsElement extends SVGElement { /** * See {@link SVGElement#SVGElement(Node, SVGElement)}. * @throws MalformedSVGDocument If the element is not well formed. */ public SVGDefsElement(final Node n, final SVGElement p) throws MalformedSVGDocument { super(n, p); } /** * Creates a meta data element. * @param owner The owner document. * @throws IllegalArgumentException If owner is null. * @since 0.1 */ public SVGDefsElement(final SVGDocument owner) { super(); ownerDocument = Objects.requireNonNull(owner); setNodeName(SVGElements.SVG_DEFS); } @Override public boolean checkAttributes() { return true; } @Override public boolean enableRendering() { return false; } @Override public SVGElement getDef(final String id) { if(id==null) return null; final NodeList nl = getChildNodes(); SVGElement e = null; Node n; for(int i=0, size = nl.getLength(); i<size && e==null; i++) { n = nl.item(i); if(n instanceof SVGElement && id.equals(((SVGElement)n).getId())) e = (SVGElement)n; } return e; } }