Skip to content

Commit

Permalink
Added new builder API.
Browse files Browse the repository at this point in the history
  • Loading branch information
Rafael Winterhalter committed Dec 30, 2015
1 parent dbedfe4 commit 8d21b7c
Show file tree
Hide file tree
Showing 6 changed files with 1,214 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,56 @@ public String toString() {
}
}

class FlagSetting implements ClassVisitorWrapper {

private final int writerFlags;

private final int readerFlags;

public FlagSetting(int writerFlags, int readerFlags) {
this.writerFlags = writerFlags;
this.readerFlags = readerFlags;
}

@Override
public int mergeWriter(int flags) {
return flags | writerFlags;
}

@Override
public int mergeReader(int flags) {
return flags | readerFlags;
}

@Override
public ClassVisitor wrap(ClassVisitor classVisitor) {
return classVisitor;
}

@Override
public boolean equals(Object other) {
if (this == other) return true;
if (other == null || getClass() != other.getClass()) return false;
FlagSetting that = (FlagSetting) other;
return writerFlags == that.writerFlags && readerFlags == that.readerFlags;
}

@Override
public int hashCode() {
int result = writerFlags;
result = 31 * result + readerFlags;
return result;
}

@Override
public String toString() {
return "ClassVisitorWrapper.FlagSetting{" +
"writerFlags=" + writerFlags +
", readerFlags=" + readerFlags +
'}';
}
}

/**
* An ordered, immutable chain of {@link net.bytebuddy.asm.ClassVisitorWrapper}s.
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package net.bytebuddy.asm;

import org.objectweb.asm.FieldVisitor;

public interface FieldVisitorWrapper {

FieldVisitor wrap(FieldVisitor fieldVisitor);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package net.bytebuddy.asm;

import org.objectweb.asm.MethodVisitor;

public interface MethodVisitorWrapper {

MethodVisitor wrap(MethodVisitor methodVisitor);
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package net.bytebuddy.description.modifier;

import java.util.Arrays;
import java.util.List;
import java.util.Collection;

/**
* An element that describes a type modifier as described in the
Expand Down Expand Up @@ -70,14 +70,18 @@ interface ForParameter extends ModifierContributor {

class Resolver<T extends ModifierContributor> {

private final List<T> modifierContributors;
private final Collection<? extends T> modifierContributors;

protected Resolver(List<T> modifierContributors) {
protected Resolver(Collection<? extends T> modifierContributors) {
this.modifierContributors = modifierContributors;
}

public static <S extends ModifierContributor> Resolver<S> of(S... modifierContributor) {
return new Resolver<S>(Arrays.asList(modifierContributor));
return of(Arrays.asList(modifierContributor));
}

public static <S extends ModifierContributor> Resolver<S> of(Collection<? extends S> modifierContributors) {
return new Resolver<S>(modifierContributors);
}

public int resolve() {
Expand All @@ -87,5 +91,23 @@ public int resolve() {
}
return modifiers;
}

@Override
public boolean equals(Object other) {
return this == other || !(other == null || getClass() != other.getClass())
&& modifierContributors.equals(((Resolver<?>) other).modifierContributors);
}

@Override
public int hashCode() {
return modifierContributors.hashCode();
}

@Override
public String toString() {
return "ModifierContributor.Resolver{" +
"modifierContributors=" + modifierContributors +
'}';
}
}
}
Loading

0 comments on commit 8d21b7c

Please sign in to comment.