001/* 002 * ============================================================================ 003 * Copyright © 2002-2023 by Thomas Thrien. 004 * All Rights Reserved. 005 * ============================================================================ 006 * Licensed to the public under the agreements of the GNU Lesser General Public 007 * License, version 3.0 (the "License"). You may obtain a copy of the License at 008 * 009 * http://www.gnu.org/licenses/lgpl.html 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 013 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 014 * License for the specific language governing permissions and limitations 015 * under the License. 016 */ 017 018package org.tquadrat.foundation.svg; 019 020import static org.apiguardian.api.API.Status.STABLE; 021import static org.tquadrat.foundation.svg.SVGUtils.SVGATTRIBUTE_XLink_Actuate; 022import static org.tquadrat.foundation.svg.SVGUtils.SVGATTRIBUTE_XLink_ArcRole; 023import static org.tquadrat.foundation.svg.SVGUtils.SVGATTRIBUTE_XLink_Reference; 024import static org.tquadrat.foundation.svg.SVGUtils.SVGATTRIBUTE_XLink_Role; 025import static org.tquadrat.foundation.svg.SVGUtils.SVGATTRIBUTE_XLink_Show; 026import static org.tquadrat.foundation.svg.SVGUtils.SVGATTRIBUTE_XLink_Title; 027import static org.tquadrat.foundation.svg.SVGUtils.SVGATTRIBUTE_XLink_Type; 028 029import java.util.List; 030 031import org.apiguardian.api.API; 032import org.tquadrat.foundation.annotation.ClassVersion; 033 034/** 035 * SVG elements that allow the XLink attributes 036 * {@value SVGUtils#SVGATTRIBUTE_XLink_Actuate}, 037 * {@value SVGUtils#SVGATTRIBUTE_XLink_ArcRole}, 038 * {@value SVGUtils#SVGATTRIBUTE_XLink_Reference}, 039 * {@value SVGUtils#SVGATTRIBUTE_XLink_Role}, 040 * {@value SVGUtils#SVGATTRIBUTE_XLink_Show}, 041 * {@value SVGUtils#SVGATTRIBUTE_XLink_Title}, 042 * and 043 * {@value SVGUtils#SVGATTRIBUTE_XLink_Type} 044 * will implement this interface. 045 * 046 * @extauthor Thomas Thrien - thomas.thrien@tquadrat.org 047 * @version $Id: AllowsXLinkAttributes.java 1074 2023-10-02 12:05:06Z tquadrat $ 048 * @since 0.0.5 049 * 050 * @UMLGraph.link 051 */ 052@ClassVersion( sourceVersion = "$Id: AllowsXLinkAttributes.java 1074 2023-10-02 12:05:06Z tquadrat $" ) 053@API( status = STABLE, since = "0.0.5" ) 054public sealed interface AllowsXLinkAttributes 055 permits SVGUse 056{ 057 /*------------------------*\ 058 ====** Static Initialisations **=========================================== 059 \*------------------------*/ 060 /** 061 * The core attributes. 062 */ 063 @SuppressWarnings( "StaticCollection" ) 064 public static final List<String> XLINK_ATTRIBUTES = List.of( 065 SVGATTRIBUTE_XLink_Actuate, 066 SVGATTRIBUTE_XLink_ArcRole, 067 SVGATTRIBUTE_XLink_Reference, 068 SVGATTRIBUTE_XLink_Role, 069 SVGATTRIBUTE_XLink_Show, 070 SVGATTRIBUTE_XLink_Title, 071 SVGATTRIBUTE_XLink_Type 072 ); 073 074 /*---------*\ 075 ====** Methods **========================================================== 076 \*---------*/ 077 /** 078 * Sets the XLink {@code actuate} attribute. 079 * 080 * @param value The attribute type. 081 */ 082 public void setXlinkActuate( final CharSequence value ); 083 084 /** 085 * Sets the XLink {@code arcrole} attribute. 086 * 087 * @param value The attribute type. 088 */ 089 public void setXLinkArcRole( final CharSequence value ); 090 091 /** 092 * Sets the XLink {@code reference} attribute. 093 * 094 * @param value The attribute type. 095 */ 096 public void setXLinkReference( final CharSequence value ); 097 098 /** 099 * Sets the XLink {@code role} attribute. 100 * 101 * @param value The attribute type. 102 */ 103 public void setXLinkRole( final CharSequence value ); 104 105 /** 106 * Sets the XLink {@code show} attribute. 107 * 108 * @param value The attribute type. 109 */ 110 public void setXLinkShow( final CharSequence value ); 111 112 /** 113 * Sets the XLink {@code title} attribute. 114 * 115 * @param value The attribute type. 116 */ 117 public void setXLinkTitle( final CharSequence value ); 118 119 /** 120 * Sets the XLink {@code type} attribute. 121 * 122 * @param value The attribute type. 123 */ 124 public void setXLinkType( final CharSequence value ); 125} 126// interface AllowsStyleAttributes 127 128/* 129 * End of File 130 */