/usr/share/doc/libserp-java/api/src-html/serp/bytecode/Annotated.html is in libserp-java-doc 1.15.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
</head>
<body>
<div class="sourceContainer">
<pre><span class="sourceLineNo">001</span>package serp.bytecode;<a name="line.1"></a>
<span class="sourceLineNo">002</span><a name="line.2"></a>
<span class="sourceLineNo">003</span>/**<a name="line.3"></a>
<span class="sourceLineNo">004</span> * An annotated entity.<a name="line.4"></a>
<span class="sourceLineNo">005</span> *<a name="line.5"></a>
<span class="sourceLineNo">006</span> * @author Abe White<a name="line.6"></a>
<span class="sourceLineNo">007</span> */<a name="line.7"></a>
<span class="sourceLineNo">008</span>public abstract class Annotated extends Attributes {<a name="line.8"></a>
<span class="sourceLineNo">009</span> /**<a name="line.9"></a>
<span class="sourceLineNo">010</span> * Return runtime <b>invisible</b> annotation information for the entity.<a name="line.10"></a>
<span class="sourceLineNo">011</span> * Acts internally through the {@link Attributes} interface.<a name="line.11"></a>
<span class="sourceLineNo">012</span> *<a name="line.12"></a>
<span class="sourceLineNo">013</span> * @param add if true, a new annotations attribute will be added if not <a name="line.13"></a>
<span class="sourceLineNo">014</span> * already present<a name="line.14"></a>
<span class="sourceLineNo">015</span> * @return the annotation information, or null if none and the<a name="line.15"></a>
<span class="sourceLineNo">016</span> * <code>add</code> param is set to false<a name="line.16"></a>
<span class="sourceLineNo">017</span> */<a name="line.17"></a>
<span class="sourceLineNo">018</span> public Annotations getDeclaredAnnotations(boolean add) {<a name="line.18"></a>
<span class="sourceLineNo">019</span> Annotations ann = (Annotations) getAttribute<a name="line.19"></a>
<span class="sourceLineNo">020</span> (Constants.ATTR_ANNOTATIONS);<a name="line.20"></a>
<span class="sourceLineNo">021</span> if (!add || ann != null)<a name="line.21"></a>
<span class="sourceLineNo">022</span> return ann;<a name="line.22"></a>
<span class="sourceLineNo">023</span> ensureBytecodeVersion();<a name="line.23"></a>
<span class="sourceLineNo">024</span> return (Annotations) addAttribute(Constants.ATTR_ANNOTATIONS);<a name="line.24"></a>
<span class="sourceLineNo">025</span> }<a name="line.25"></a>
<span class="sourceLineNo">026</span><a name="line.26"></a>
<span class="sourceLineNo">027</span> /**<a name="line.27"></a>
<span class="sourceLineNo">028</span> * Remove the runtime <b>invisible</b> annotations attribute for the entity.<a name="line.28"></a>
<span class="sourceLineNo">029</span> * Acts internally through the {@link Attributes} interface.<a name="line.29"></a>
<span class="sourceLineNo">030</span> *<a name="line.30"></a>
<span class="sourceLineNo">031</span> * @return true if there was an attribute to remove<a name="line.31"></a>
<span class="sourceLineNo">032</span> */<a name="line.32"></a>
<span class="sourceLineNo">033</span> public boolean removeDeclaredAnnotations() {<a name="line.33"></a>
<span class="sourceLineNo">034</span> return removeAttribute(Constants.ATTR_ANNOTATIONS);<a name="line.34"></a>
<span class="sourceLineNo">035</span> }<a name="line.35"></a>
<span class="sourceLineNo">036</span><a name="line.36"></a>
<span class="sourceLineNo">037</span> /**<a name="line.37"></a>
<span class="sourceLineNo">038</span> * Return runtime visible annotation information for the entity.<a name="line.38"></a>
<span class="sourceLineNo">039</span> * Acts internally through the {@link Attributes} interface.<a name="line.39"></a>
<span class="sourceLineNo">040</span> *<a name="line.40"></a>
<span class="sourceLineNo">041</span> * @param add if true, a new runtime annotations attribute will be<a name="line.41"></a>
<span class="sourceLineNo">042</span> * added if not already present<a name="line.42"></a>
<span class="sourceLineNo">043</span> * @return the annotation information, or null if none and the<a name="line.43"></a>
<span class="sourceLineNo">044</span> * <code>add</code> param is set to false<a name="line.44"></a>
<span class="sourceLineNo">045</span> */<a name="line.45"></a>
<span class="sourceLineNo">046</span> public Annotations getDeclaredRuntimeAnnotations(boolean add) {<a name="line.46"></a>
<span class="sourceLineNo">047</span> Annotations ann = (Annotations) getAttribute<a name="line.47"></a>
<span class="sourceLineNo">048</span> (Constants.ATTR_RUNTIME_ANNOTATIONS);<a name="line.48"></a>
<span class="sourceLineNo">049</span> if (!add || ann != null)<a name="line.49"></a>
<span class="sourceLineNo">050</span> return ann;<a name="line.50"></a>
<span class="sourceLineNo">051</span> ensureBytecodeVersion();<a name="line.51"></a>
<span class="sourceLineNo">052</span> return (Annotations) addAttribute(Constants.ATTR_RUNTIME_ANNOTATIONS);<a name="line.52"></a>
<span class="sourceLineNo">053</span> }<a name="line.53"></a>
<span class="sourceLineNo">054</span><a name="line.54"></a>
<span class="sourceLineNo">055</span> /**<a name="line.55"></a>
<span class="sourceLineNo">056</span> * Remove the runtime visible annotations attribute for the entity.<a name="line.56"></a>
<span class="sourceLineNo">057</span> * Acts internally through the {@link Attributes} interface.<a name="line.57"></a>
<span class="sourceLineNo">058</span> *<a name="line.58"></a>
<span class="sourceLineNo">059</span> * @return true if there was an attribute to remove<a name="line.59"></a>
<span class="sourceLineNo">060</span> */<a name="line.60"></a>
<span class="sourceLineNo">061</span> public boolean removeDeclaredRuntimeAnnotations() {<a name="line.61"></a>
<span class="sourceLineNo">062</span> return removeAttribute(Constants.ATTR_RUNTIME_ANNOTATIONS);<a name="line.62"></a>
<span class="sourceLineNo">063</span> }<a name="line.63"></a>
<span class="sourceLineNo">064</span><a name="line.64"></a>
<span class="sourceLineNo">065</span> /**<a name="line.65"></a>
<span class="sourceLineNo">066</span> * When adding annotations, make sure the bytecode spec supports them.<a name="line.66"></a>
<span class="sourceLineNo">067</span> */<a name="line.67"></a>
<span class="sourceLineNo">068</span> private void ensureBytecodeVersion() {<a name="line.68"></a>
<span class="sourceLineNo">069</span> BCClass bc = getBCClass();<a name="line.69"></a>
<span class="sourceLineNo">070</span> if (bc.getMajorVersion() < Constants.MAJOR_VERSION_JAVA5) {<a name="line.70"></a>
<span class="sourceLineNo">071</span> bc.setMajorVersion(Constants.MAJOR_VERSION_JAVA5);<a name="line.71"></a>
<span class="sourceLineNo">072</span> bc.setMinorVersion(Constants.MINOR_VERSION_JAVA5);<a name="line.72"></a>
<span class="sourceLineNo">073</span> }<a name="line.73"></a>
<span class="sourceLineNo">074</span> }<a name="line.74"></a>
<span class="sourceLineNo">075</span> <a name="line.75"></a>
<span class="sourceLineNo">076</span> /**<a name="line.76"></a>
<span class="sourceLineNo">077</span> * Internal access to the owning class.<a name="line.77"></a>
<span class="sourceLineNo">078</span> */<a name="line.78"></a>
<span class="sourceLineNo">079</span> abstract BCClass getBCClass();<a name="line.79"></a>
<span class="sourceLineNo">080</span>}<a name="line.80"></a>
</pre>
</div>
</body>
</html>
|