/** * Put an element into the set of (name, value) pairs for this instance. * If there is a preexisting element with the same name, it will be * replaced by this method. * * @param pair {@code non-null;} the (name, value) pair to place into this instance */ public void put(NameValuePair pair) { throwIfImmutable(); if (pair == null) { throw new NullPointerException("pair == null"); } elements.put(pair.getName(), pair); }
/** * Put an element into the set of (name, value) pairs for this instance. * If there is a preexisting element with the same name, it will be * replaced by this method. * * @param pair {@code non-null;} the (name, value) pair to place into this instance */ public void put(NameValuePair pair) { throwIfImmutable(); if (pair == null) { throw new NullPointerException("pair == null"); } elements.put(pair.getName(), pair); }
/** * Put an element into the set of (name, value) pairs for this instance. * If there is a preexisting element with the same name, it will be * replaced by this method. * * @param pair {@code non-null;} the (name, value) pair to place into this instance */ public void put(NameValuePair pair) { throwIfImmutable(); if (pair == null) { throw new NullPointerException("pair == null"); } elements.put(pair.getName(), pair); }
/** * Put an element into the set of (name, value) pairs for this instance. * If there is a preexisting element with the same name, it will be * replaced by this method. * * @param pair {@code non-null;} the (name, value) pair to place into this instance */ public void put(NameValuePair pair) { throwIfImmutable(); if (pair == null) { throw new NullPointerException("pair == null"); } elements.put(pair.getName(), pair); }
/** * Put an element into the set of (name, value) pairs for this instance. * If there is a preexisting element with the same name, it will be * replaced by this method. * * @param pair {@code non-null;} the (name, value) pair to place into this instance */ public void put(NameValuePair pair) { throwIfImmutable(); if (pair == null) { throw new NullPointerException("pair == null"); } elements.put(pair.getName(), pair); }
/** * Put an element into the set of (name, value) pairs for this instance. * If there is a preexisting element with the same name, it will be * replaced by this method. * * @param pair {@code non-null;} the (name, value) pair to place into this instance */ public void put(NameValuePair pair) { throwIfImmutable(); if (pair == null) { throw new NullPointerException("pair == null"); } elements.put(pair.getName(), pair); }
/** * Put an element into the set of (name, value) pairs for this instance. * If there is a preexisting element with the same name, it will be * replaced by this method. * * @param pair {@code non-null;} the (name, value) pair to place into this instance */ public void put(NameValuePair pair) { throwIfImmutable(); if (pair == null) { throw new NullPointerException("pair == null"); } elements.put(pair.getName(), pair); }
/** * Put an element into the set of (name, value) pairs for this instance. * If there is a preexisting element with the same name, it will be * replaced by this method. * * @param pair {@code non-null;} the (name, value) pair to place into this instance */ public void put(NameValuePair pair) { throwIfImmutable(); if (pair == null) { throw new NullPointerException("pair == null"); } elements.put(pair.getName(), pair); }
/** * Add an element to the set of (name, value) pairs for this instance. * It is an error to call this method if there is a preexisting element * with the same name. * * @param pair {@code non-null;} the (name, value) pair to add to this instance */ public void add(NameValuePair pair) { throwIfImmutable(); if (pair == null) { throw new NullPointerException("pair == null"); } CstString name = pair.getName(); if (elements.get(name) != null) { throw new IllegalArgumentException("name already added: " + name); } elements.put(name, pair); }
/** * Add an element to the set of (name, value) pairs for this instance. * It is an error to call this method if there is a preexisting element * with the same name. * * @param pair {@code non-null;} the (name, value) pair to add to this instance */ public void add(NameValuePair pair) { throwIfImmutable(); if (pair == null) { throw new NullPointerException("pair == null"); } CstString name = pair.getName(); if (elements.get(name) != null) { throw new IllegalArgumentException("name already added: " + name); } elements.put(name, pair); }
/** * Add an element to the set of (name, value) pairs for this instance. * It is an error to call this method if there is a preexisting element * with the same name. * * @param pair {@code non-null;} the (name, value) pair to add to this instance */ public void add(NameValuePair pair) { throwIfImmutable(); if (pair == null) { throw new NullPointerException("pair == null"); } CstString name = pair.getName(); if (elements.get(name) != null) { throw new IllegalArgumentException("name already added: " + name); } elements.put(name, pair); }
/** * Helper for {@code addContents()} methods, which adds * contents for a particular {@link Annotation}, calling itself * recursively should it encounter a nested annotation. * * @param file {@code non-null;} the file to add to * @param annotation {@code non-null;} the annotation to add contents for */ public static void addContents(DexFile file, Annotation annotation) { TypeIdsSection typeIds = file.getTypeIds(); StringIdsSection stringIds = file.getStringIds(); typeIds.intern(annotation.getType()); for (NameValuePair pair : annotation.getNameValuePairs()) { stringIds.intern(pair.getName()); addContents(file, pair.getValue()); } }
/** * Helper for {@code addContents()} methods, which adds * contents for a particular {@link Annotation}, calling itself * recursively should it encounter a nested annotation. * * @param file {@code non-null;} the file to add to * @param annotation {@code non-null;} the annotation to add contents for */ public static void addContents(DexFile file, Annotation annotation) { TypeIdsSection typeIds = file.getTypeIds(); StringIdsSection stringIds = file.getStringIds(); typeIds.intern(annotation.getType()); for (NameValuePair pair : annotation.getNameValuePairs()) { stringIds.intern(pair.getName()); addContents(file, pair.getValue()); } }
/** * Helper for {@code addContents()} methods, which adds * contents for a particular {@link Annotation}, calling itself * recursively should it encounter a nested annotation. * * @param file {@code non-null;} the file to add to * @param annotation {@code non-null;} the annotation to add contents for */ public static void addContents(DexFile file, Annotation annotation) { TypeIdsSection typeIds = file.getTypeIds(); StringIdsSection stringIds = file.getStringIds(); typeIds.intern(annotation.getType()); for (NameValuePair pair : annotation.getNameValuePairs()) { stringIds.intern(pair.getName()); addContents(file, pair.getValue()); } }
/** * Helper for {@code addContents()} methods, which adds * contents for a particular {@link Annotation}, calling itself * recursively should it encounter a nested annotation. * * @param file {@code non-null;} the file to add to * @param annotation {@code non-null;} the annotation to add contents for */ public static void addContents(DexFile file, Annotation annotation) { TypeIdsSection typeIds = file.getTypeIds(); StringIdsSection stringIds = file.getStringIds(); typeIds.intern(annotation.getType()); for (NameValuePair pair : annotation.getNameValuePairs()) { stringIds.intern(pair.getName()); addContents(file, pair.getValue()); } }
/** * Helper for {@code addContents()} methods, which adds * contents for a particular {@link Annotation}, calling itself * recursively should it encounter a nested annotation. * * @param file {@code non-null;} the file to add to * @param annotation {@code non-null;} the annotation to add contents for */ public static void addContents(DexFile file, Annotation annotation) { TypeIdsSection typeIds = file.getTypeIds(); StringIdsSection stringIds = file.getStringIds(); typeIds.intern(annotation.getType()); for (NameValuePair pair : annotation.getNameValuePairs()) { stringIds.intern(pair.getName()); addContents(file, pair.getValue()); } }
/** * Helper for {@code addContents()} methods, which adds * contents for a particular {@link Annotation}, calling itself * recursively should it encounter a nested annotation. * * @param file {@code non-null;} the file to add to * @param annotation {@code non-null;} the annotation to add contents for */ public static void addContents(DexFile file, Annotation annotation) { TypeIdsSection typeIds = file.getTypeIds(); StringIdsSection stringIds = file.getStringIds(); typeIds.intern(annotation.getType()); for (NameValuePair pair : annotation.getNameValuePairs()) { stringIds.intern(pair.getName()); addContents(file, pair.getValue()); } }
/** * Helper for {@code addContents()} methods, which adds * contents for a particular {@link Annotation}, calling itself * recursively should it encounter a nested annotation. * * @param file {@code non-null;} the file to add to * @param annotation {@code non-null;} the annotation to add contents for */ public static void addContents(DexFile file, Annotation annotation) { TypeIdsSection typeIds = file.getTypeIds(); StringIdsSection stringIds = file.getStringIds(); typeIds.intern(annotation.getType()); for (NameValuePair pair : annotation.getNameValuePairs()) { stringIds.intern(pair.getName()); addContents(file, pair.getValue()); } }
/** * Helper for {@code addContents()} methods, which adds * contents for a particular {@link Annotation}, calling itself * recursively should it encounter a nested annotation. * * @param file {@code non-null;} the file to add to * @param annotation {@code non-null;} the annotation to add contents for */ public static void addContents(DexFile file, Annotation annotation) { TypeIdsSection typeIds = file.getTypeIds(); StringIdsSection stringIds = file.getStringIds(); typeIds.intern(annotation.getType()); for (NameValuePair pair : annotation.getNameValuePairs()) { stringIds.intern(pair.getName()); addContents(file, pair.getValue()); } }
/** * Write a (listing file) annotation for this instance to the given * output, that consumes no bytes of output. This is for annotating * a reference to this instance at the point of the reference. * * @param out {@code non-null;} where to output to * @param prefix {@code non-null;} prefix for each line of output */ public void annotateTo(AnnotatedOutput out, String prefix) { out.annotate(0, prefix + "visibility: " + annotation.getVisibility().toHuman()); out.annotate(0, prefix + "type: " + annotation.getType().toHuman()); for (NameValuePair pair : annotation.getNameValuePairs()) { CstString name = pair.getName(); Constant value = pair.getValue(); out.annotate(0, prefix + name.toHuman() + ": " + ValueEncoder.constantToHuman(value)); } }