diff options
author | Lars Grefer <eclipse@larsgrefer.de> | 2020-08-17 01:19:52 +0200 |
---|---|---|
committer | Lars Grefer <eclipse@larsgrefer.de> | 2020-08-17 01:19:52 +0200 |
commit | 85ad27ee704fa8c17345bbe46c959a3e6ccbd179 (patch) | |
tree | 64db483a4fd9027cb3ba862e371427538631b5dc /asm | |
parent | c5be7f17349f1e7ea5d3da4be09b5f3e964de19b (diff) | |
download | aspectj-85ad27ee704fa8c17345bbe46c959a3e6ccbd179.tar.gz aspectj-85ad27ee704fa8c17345bbe46c959a3e6ccbd179.zip |
Remove unnecessary interface modifiers
Signed-off-by: Lars Grefer <eclipse@larsgrefer.de>
Diffstat (limited to 'asm')
6 files changed, 204 insertions, 204 deletions
diff --git a/asm/src/main/java/org/aspectj/asm/IElementHandleProvider.java b/asm/src/main/java/org/aspectj/asm/IElementHandleProvider.java index c071f0337..02a2a3474 100644 --- a/asm/src/main/java/org/aspectj/asm/IElementHandleProvider.java +++ b/asm/src/main/java/org/aspectj/asm/IElementHandleProvider.java @@ -1,13 +1,13 @@ /* ******************************************************************* * Copyright (c) 2003 Contributors. - * 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: - * Mik Kersten initial implementation + * 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: + * Mik Kersten initial implementation * ******************************************************************/ package org.aspectj.asm; @@ -20,7 +20,7 @@ import org.aspectj.bridge.ISourceLocation; * Adapter used to uniquely identify program element handles. Can be implemented and overridden in @see{AsmManager} in order to * provide IDE-specific mechanisms of identifying elements. For example, AJDT uses workspace-relative paths that are understood by * its JavaCore class. - * + * * @author Mik Kersten */ public interface IElementHandleProvider { @@ -28,38 +28,38 @@ public interface IElementHandleProvider { /** * @return a String uniquely identifying this element */ - public String createHandleIdentifier(ISourceLocation location); + String createHandleIdentifier(ISourceLocation location); /** * @return a String uniquely identifying this element */ - public String createHandleIdentifier(File sourceFile, int line, int column, int offset); + String createHandleIdentifier(File sourceFile, int line, int column, int offset); /** * @return a String uniquely identifying this element */ - public String createHandleIdentifier(IProgramElement ipe); + String createHandleIdentifier(IProgramElement ipe); /** * NOTE: this is necessary for the current implementation to look up nodes, but we may want to consider removing it. - * + * * @return a String corresponding to the */ - public String getFileForHandle(String handle); + String getFileForHandle(String handle); /** * NOTE: this is necessary for the current implementation to look up nodes, but we may want to consider removing it. - * + * * @return the line number corresponding to this handel */ - public int getLineNumberForHandle(String handle); + int getLineNumberForHandle(String handle); - public int getOffSetForHandle(String handle); + int getOffSetForHandle(String handle); /** * Initializes handle provider state. - * + * * The initializer is invoked when a new ASM is created on a full build. */ - public void initialize(); + void initialize(); } diff --git a/asm/src/main/java/org/aspectj/asm/IHierarchy.java b/asm/src/main/java/org/aspectj/asm/IHierarchy.java index 80ed2b551..f411b2507 100644 --- a/asm/src/main/java/org/aspectj/asm/IHierarchy.java +++ b/asm/src/main/java/org/aspectj/asm/IHierarchy.java @@ -1,13 +1,13 @@ /* ******************************************************************* * Copyright (c) 2003,2010 Contributors - * 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: - * Mik Kersten initial implementation + * 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: + * Mik Kersten initial implementation * Andy Clement * ******************************************************************/ package org.aspectj.asm; @@ -26,106 +26,106 @@ import org.aspectj.bridge.ISourceLocation; */ public interface IHierarchy extends Serializable { - public static final IProgramElement NO_STRUCTURE = new ProgramElement(null, "<build to view structure>", + IProgramElement NO_STRUCTURE = new ProgramElement(null, "<build to view structure>", IProgramElement.Kind.ERROR, null); - public IProgramElement getElement(String handle); + IProgramElement getElement(String handle); - public IProgramElement getRoot(); + IProgramElement getRoot(); - public void setRoot(IProgramElement root); + void setRoot(IProgramElement root); - public void addToFileMap(String canonicalFilePath, IProgramElement compilationUnitProgramElement); + void addToFileMap(String canonicalFilePath, IProgramElement compilationUnitProgramElement); - public boolean removeFromFileMap(String canonicalFilePath); + boolean removeFromFileMap(String canonicalFilePath); - public void setFileMap(Map<String, IProgramElement> fileMap); + void setFileMap(Map<String, IProgramElement> fileMap); - public default void setFileMap(HashMap<String, IProgramElement> fileMap) { + default void setFileMap(HashMap<String, IProgramElement> fileMap) { setFileMap((Map<String, IProgramElement>) fileMap); } - public Object findInFileMap(Object key); + Object findInFileMap(Object key); - public Set<Map.Entry<String, IProgramElement>> getFileMapEntrySet(); + Set<Map.Entry<String, IProgramElement>> getFileMapEntrySet(); - public boolean isValid(); + boolean isValid(); - public IProgramElement findElementForHandle(String handle); + IProgramElement findElementForHandle(String handle); - public IProgramElement findElementForHandleOrCreate(String handle, boolean create); + IProgramElement findElementForHandleOrCreate(String handle, boolean create); /** * Returns the first match - * + * * @param parent * @param kind not null * @return null if not found */ - public IProgramElement findElementForSignature(IProgramElement parent, IProgramElement.Kind kind, String signature); + IProgramElement findElementForSignature(IProgramElement parent, IProgramElement.Kind kind, String signature); /** * Returns the first match - * + * * @param parent * @param kind not null * @return null if not found */ - public IProgramElement findElementForLabel(IProgramElement parent, IProgramElement.Kind kind, String label); + IProgramElement findElementForLabel(IProgramElement parent, IProgramElement.Kind kind, String label); /** * @param packageName if null default package is searched * @param className can't be null */ - public IProgramElement findElementForType(String packageName, String typeName); + IProgramElement findElementForType(String packageName, String typeName); /** * @param sourceFilePath modified to '/' delimited path for consistency * @return a new structure node for the file if it was not found in the model */ - public IProgramElement findElementForSourceFile(String sourceFile); + IProgramElement findElementForSourceFile(String sourceFile); /** * TODO: discriminate columns */ - public IProgramElement findElementForSourceLine(ISourceLocation location); + IProgramElement findElementForSourceLine(ISourceLocation location); /** * Never returns null - * + * * @param sourceFilePath canonicalized path for consistency * @param lineNumber if 0 or 1 the corresponding file node will be returned * @return a new structure node for the file if it was not found in the model */ - public IProgramElement findElementForSourceLine(String sourceFilePath, int lineNumber); + IProgramElement findElementForSourceLine(String sourceFilePath, int lineNumber); - public IProgramElement findElementForOffSet(String sourceFilePath, int lineNumber, int offSet); + IProgramElement findElementForOffSet(String sourceFilePath, int lineNumber, int offSet); - public String getConfigFile(); + String getConfigFile(); - public void setConfigFile(String configFile); + void setConfigFile(String configFile); - public void flushTypeMap(); + void flushTypeMap(); - public void flushHandleMap(); + void flushHandleMap(); - public void updateHandleMap(Set<String> deletedFiles); + void updateHandleMap(Set<String> deletedFiles); /** * For a specified node, check if any of the children more accurately represent the specified line. - * + * * @param node where to start looking * @param lineno the line number * @return any closer match below 'node' or null if nothing is a more accurate match */ - public IProgramElement findCloserMatchForLineNumber(IProgramElement node, int lineno); + IProgramElement findCloserMatchForLineNumber(IProgramElement node, int lineno); /** * Discover the node representing a particular source file. - * + * * @param node where in the model to start looking (usually the root on the initial call) * @param sourcefilePath the source file being searched for * @return the node representing that source file or null if it cannot be found */ - public IProgramElement findNodeForSourceFile(IProgramElement node, String sourcefilePath); -}
\ No newline at end of file + IProgramElement findNodeForSourceFile(IProgramElement node, String sourcefilePath); +} diff --git a/asm/src/main/java/org/aspectj/asm/IHierarchyListener.java b/asm/src/main/java/org/aspectj/asm/IHierarchyListener.java index 12bf724da..3a9323113 100644 --- a/asm/src/main/java/org/aspectj/asm/IHierarchyListener.java +++ b/asm/src/main/java/org/aspectj/asm/IHierarchyListener.java @@ -1,13 +1,13 @@ /* ******************************************************************* * Copyright (c) 2003 Contributors. - * 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: - * Mik Kersten initial implementation + * 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: + * Mik Kersten initial implementation * ******************************************************************/ package org.aspectj.asm; @@ -16,10 +16,10 @@ import java.util.EventListener; /** * Compiler listeners get notified of structure model update events. - * + * * @author Mik Kersten */ public interface IHierarchyListener extends EventListener { - public void elementsUpdated(IHierarchy rootNode); + void elementsUpdated(IHierarchy rootNode); } diff --git a/asm/src/main/java/org/aspectj/asm/IProgramElement.java b/asm/src/main/java/org/aspectj/asm/IProgramElement.java index 8d4766681..80e0a59da 100644 --- a/asm/src/main/java/org/aspectj/asm/IProgramElement.java +++ b/asm/src/main/java/org/aspectj/asm/IProgramElement.java @@ -1,13 +1,13 @@ /* ******************************************************************* * Copyright (c) 2003 Contributors. - * 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: - * Mik Kersten initial implementation + * 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: + * Mik Kersten initial implementation * ******************************************************************/ package org.aspectj.asm; @@ -23,23 +23,23 @@ import org.aspectj.bridge.ISourceLocation; /** * Represents program elements in the AspectJ containment hierarchy. - * + * * @author Mik Kersten */ public interface IProgramElement extends Serializable { - public List<IProgramElement> getChildren(); + List<IProgramElement> getChildren(); - public void setChildren(List<IProgramElement> children); + void setChildren(List<IProgramElement> children); - public void addChild(IProgramElement child); + void addChild(IProgramElement child); - public boolean removeChild(IProgramElement child); + boolean removeChild(IProgramElement child); // Extra stuff // Could be just a string but may prove more useful as an object in the long // run ... - public static class ExtraInformation implements Serializable { + class ExtraInformation implements Serializable { private static final long serialVersionUID = -3880735494840820638L; private String extraInfo; @@ -60,153 +60,153 @@ public interface IProgramElement extends Serializable { } } - public void setExtraInfo(ExtraInformation info); + void setExtraInfo(ExtraInformation info); - public ExtraInformation getExtraInfo(); + ExtraInformation getExtraInfo(); - public IProgramElement getParent(); + IProgramElement getParent(); - public void setParent(IProgramElement parent); + void setParent(IProgramElement parent); - public void setParentTypes(List<String> parentTypes); + void setParentTypes(List<String> parentTypes); - public List<String> getParentTypes(); + List<String> getParentTypes(); - public String getName(); + String getName(); - public void setName(String name); + void setName(String name); - public String getDetails(); + String getDetails(); - public void setDetails(String details); + void setDetails(String details); - public IProgramElement.Kind getKind(); + IProgramElement.Kind getKind(); - public void setKind(Kind kind); + void setKind(Kind kind); - public List<IProgramElement.Modifiers> getModifiers(); + List<IProgramElement.Modifiers> getModifiers(); - public void setModifiers(int i); + void setModifiers(int i); - public Accessibility getAccessibility(); + Accessibility getAccessibility(); - public String getDeclaringType(); // TODO: remove (Emacs uses it) + String getDeclaringType(); // TODO: remove (Emacs uses it) - public String getPackageName(); + String getPackageName(); /** * @param method * return types or field types */ - public void setCorrespondingType(String returnType); + void setCorrespondingType(String returnType); /** * This correponds to both method return types and field types. */ - public String getCorrespondingType(); + String getCorrespondingType(); - public String getCorrespondingType(boolean getFullyQualifiedType); + String getCorrespondingType(boolean getFullyQualifiedType); - public String toSignatureString(); + String toSignatureString(); - public String toSignatureString(boolean getFullyQualifiedArgTypes); + String toSignatureString(boolean getFullyQualifiedArgTypes); - public void setRunnable(boolean value); + void setRunnable(boolean value); - public boolean isRunnable(); + boolean isRunnable(); - public boolean isImplementor(); + boolean isImplementor(); - public void setImplementor(boolean value); + void setImplementor(boolean value); - public boolean isOverrider(); + boolean isOverrider(); - public void setOverrider(boolean value); + void setOverrider(boolean value); - public IMessage getMessage(); + IMessage getMessage(); - public void setMessage(IMessage message); + void setMessage(IMessage message); - public ISourceLocation getSourceLocation(); + ISourceLocation getSourceLocation(); - public void setSourceLocation(ISourceLocation sourceLocation); + void setSourceLocation(ISourceLocation sourceLocation); - public String toString(); + String toString(); /** * @return the javadoc comment for this program element, null if not available */ - public String getFormalComment(); + String getFormalComment(); - public void setFormalComment(String comment); + void setFormalComment(String comment); /** * Includes information about the origin of the node. */ - public String toLinkLabelString(); + String toLinkLabelString(); - public String toLinkLabelString(boolean getFullyQualifiedArgTypes); + String toLinkLabelString(boolean getFullyQualifiedArgTypes); /** * Includes name, parameter types (if any) and details (if any). */ - public String toLabelString(); + String toLabelString(); - public String toLabelString(boolean getFullyQualifiedArgTypes); + String toLabelString(boolean getFullyQualifiedArgTypes); - public List<String> getParameterNames(); + List<String> getParameterNames(); - public void setParameterNames(List<String> list); + void setParameterNames(List<String> list); - public List<char[]> getParameterSignatures(); + List<char[]> getParameterSignatures(); - public List<String> getParameterSignaturesSourceRefs(); + List<String> getParameterSignaturesSourceRefs(); - public void setParameterSignatures(List<char[]> list, List<String> paramSourceRefs); + void setParameterSignatures(List<char[]> list, List<String> paramSourceRefs); - public List<char[]> getParameterTypes(); + List<char[]> getParameterTypes(); /** * The format of the string handle is not specified, but is stable across compilation sessions. - * + * * @return a string representation of this element */ - public String getHandleIdentifier(); + String getHandleIdentifier(); - public String getHandleIdentifier(boolean create); + String getHandleIdentifier(boolean create); - public void setHandleIdentifier(String handle); + void setHandleIdentifier(String handle); /** * @return a string representation of this node and all of its children (recursive) */ - public String toLongString(); + String toLongString(); - public String getBytecodeName(); + String getBytecodeName(); - public String getBytecodeSignature(); + String getBytecodeSignature(); - public void setBytecodeName(String bytecodeName); + void setBytecodeName(String bytecodeName); - public void setBytecodeSignature(String bytecodeSignature); + void setBytecodeSignature(String bytecodeSignature); /** * @return the full signature of this element, as it appears in the source */ - public String getSourceSignature(); + String getSourceSignature(); - public void setSourceSignature(String string); + void setSourceSignature(String string); - public IProgramElement walk(HierarchyWalker walker); + IProgramElement walk(HierarchyWalker walker); - public AsmManager getModel(); + AsmManager getModel(); - public int getRawModifiers(); + int getRawModifiers(); /** * Uses "typesafe enum" pattern. */ - public static class Modifiers implements Serializable { + class Modifiers implements Serializable { private static final long serialVersionUID = -8279300899976607927L; @@ -247,7 +247,7 @@ public interface IProgramElement extends Serializable { /** * Uses "typesafe enum" pattern. */ - public static class Accessibility implements Serializable { + class Accessibility implements Serializable { private static final long serialVersionUID = 5371838588180918519L; @@ -279,7 +279,7 @@ public interface IProgramElement extends Serializable { /** * Uses "typesafe enum" pattern. */ - public static class Kind implements Serializable { + class Kind implements Serializable { private static final long serialVersionUID = -1963553877479266124L; @@ -420,37 +420,37 @@ public interface IProgramElement extends Serializable { } - public void setAnnotationStyleDeclaration(boolean b); + void setAnnotationStyleDeclaration(boolean b); - public boolean isAnnotationStyleDeclaration(); + boolean isAnnotationStyleDeclaration(); /** * @param fullyQualifiedannotationType * the annotation type, eg. p.q.r.Foo */ - public void setAnnotationType(String fullyQualifiedannotationType); + void setAnnotationType(String fullyQualifiedannotationType); /** * @return the fully qualified annotation type, eg. p.q.r.Foo */ - public String getAnnotationType(); + String getAnnotationType(); - public String[] getRemovedAnnotationTypes(); + String[] getRemovedAnnotationTypes(); - public Map<String, List<String>> getDeclareParentsMap(); + Map<String, List<String>> getDeclareParentsMap(); - public void setDeclareParentsMap(Map<String, List<String>> newmap); + void setDeclareParentsMap(Map<String, List<String>> newmap); - public void addFullyQualifiedName(String fqname); + void addFullyQualifiedName(String fqname); - public String getFullyQualifiedName(); + String getFullyQualifiedName(); - public void setAnnotationRemover(boolean isRemover); + void setAnnotationRemover(boolean isRemover); - public boolean isAnnotationRemover(); + boolean isAnnotationRemover(); /** * @return the return type of a method or type of a field in signature form (e.g. Ljava/lang/String;) */ - public String getCorrespondingTypeSignature(); -}
\ No newline at end of file + String getCorrespondingTypeSignature(); +} diff --git a/asm/src/main/java/org/aspectj/asm/IRelationship.java b/asm/src/main/java/org/aspectj/asm/IRelationship.java index 441a3d2d0..61c67eb8c 100644 --- a/asm/src/main/java/org/aspectj/asm/IRelationship.java +++ b/asm/src/main/java/org/aspectj/asm/IRelationship.java @@ -1,13 +1,13 @@ /* ******************************************************************* * Copyright (c) 2003 Contributors. - * 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: - * Mik Kersten initial implementation + * 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: + * Mik Kersten initial implementation * ******************************************************************/ package org.aspectj.asm; @@ -17,27 +17,27 @@ import java.util.List; /** * A relationship has a name (e.g. 'declare warning') and some set of affected targets. - * + * * @author Mik Kersten * @author Andy Clement */ public interface IRelationship extends Serializable { - public String getName(); + String getName(); - public Kind getKind(); + Kind getKind(); - public void addTarget(String handle); + void addTarget(String handle); - public List<String> getTargets(); + List<String> getTargets(); - public String getSourceHandle(); + String getSourceHandle(); - public boolean hasRuntimeTest(); + boolean hasRuntimeTest(); - public boolean isAffects(); + boolean isAffects(); - public static class Kind implements Serializable { // typesafe enum + class Kind implements Serializable { // typesafe enum private static final long serialVersionUID = -2691351740214705220L; @@ -70,7 +70,7 @@ public interface IRelationship extends Serializable { /** * Return the Kind of the relationship that is passed in by name. - * + * * @param stringFormOfRelationshipKind the relationship name, eg. 'declare warning', 'declare error', etc. * @return the Kind instance */ diff --git a/asm/src/main/java/org/aspectj/asm/IRelationshipMap.java b/asm/src/main/java/org/aspectj/asm/IRelationshipMap.java index e4159dce8..fdaab0ad6 100644 --- a/asm/src/main/java/org/aspectj/asm/IRelationshipMap.java +++ b/asm/src/main/java/org/aspectj/asm/IRelationshipMap.java @@ -1,13 +1,13 @@ /* ******************************************************************* * Copyright (c) 2003 Contributors. - * 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: - * Mik Kersten initial implementation + * 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: + * Mik Kersten initial implementation * ******************************************************************/ package org.aspectj.asm; @@ -22,15 +22,15 @@ import java.util.Set; * particular shadow (e.g. method call) can be retrieved by calling <CODE>get</CODE> on the handle for that method. Symmetrically * the method call shadows that an advice affects can be retrieved. * <p> - * + * * <p> * The elements can be stored and looked up as IProgramElement(s), in which cases the element corresponding to the handle is looked * up in the containment hierarchy. - * + * * <p> * put/get methods taking IProgramElement as a parameter are for convenience only. They work identically to calling their * counterparts with IProgramElement.getIdentifierHandle() - * + * * @author Mik Kersten * @author Andy Clement */ @@ -39,49 +39,49 @@ public interface IRelationshipMap extends Serializable { /** * @return list of relationships or null if the source element has no relationships */ - public List<IRelationship> get(IProgramElement sourceProgramElement); + List<IRelationship> get(IProgramElement sourceProgramElement); /** * @return list of relationships or null if the source element has no relationships */ - public List<IRelationship> get(String sourceHandle); + List<IRelationship> get(String sourceHandle); /** * Return a relationship matching the kind and name for the given element. - * + * * @return null if the relationship is not found. */ - public IRelationship get(IProgramElement source, IRelationship.Kind kind, String relationshipName, boolean runtimeTest, - boolean createIfMissing); + IRelationship get(IProgramElement source, IRelationship.Kind kind, String relationshipName, boolean runtimeTest, + boolean createIfMissing); /** * Return a relationship matching the kind and name for the given element. - * + * * @return null if the relationship is not found. */ - public IRelationship get(IProgramElement source, IRelationship.Kind kind, String relationshipName); + IRelationship get(IProgramElement source, IRelationship.Kind kind, String relationshipName); /** * Return a relationship matching the kind and name for the given element. Creates the relationship if not found. - * + * * @return null if the relationship is not found. */ - public IRelationship get(String source, IRelationship.Kind kind, String relationshipName, boolean runtimeTest, - boolean createIfMissing); + IRelationship get(String source, IRelationship.Kind kind, String relationshipName, boolean runtimeTest, + boolean createIfMissing); - public void put(IProgramElement source, IRelationship relationship); + void put(IProgramElement source, IRelationship relationship); - public void put(String handle, IRelationship relationship); + void put(String handle, IRelationship relationship); - public boolean remove(String handle, IRelationship relationship); + boolean remove(String handle, IRelationship relationship); - public void removeAll(String source); + void removeAll(String source); /** * Clear all of the relationships in the map. */ - public void clear(); + void clear(); - public Set<String> getEntries(); + Set<String> getEntries(); } |