Home / Class/ AbstractConstant Class — netty Architecture

AbstractConstant Class — netty Architecture

Architecture documentation for the AbstractConstant class in AbstractConstant.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  319d8d0c_efd5_a3f6_4932_87e3844a665f["AbstractConstant"]
  e35275ba_33b0_74b3_d32b_39252194ae84["AbstractConstant.java"]
  319d8d0c_efd5_a3f6_4932_87e3844a665f -->|defined in| e35275ba_33b0_74b3_d32b_39252194ae84
  8e45e1cf_d744_ad6d_3230_9c41d4a09ffb["AbstractConstant()"]
  319d8d0c_efd5_a3f6_4932_87e3844a665f -->|method| 8e45e1cf_d744_ad6d_3230_9c41d4a09ffb
  54cbc80f_1773_0563_520d_3525d06cccd2["String()"]
  319d8d0c_efd5_a3f6_4932_87e3844a665f -->|method| 54cbc80f_1773_0563_520d_3525d06cccd2
  c247dc28_3098_5618_86b4_bb69dd98294c["id()"]
  319d8d0c_efd5_a3f6_4932_87e3844a665f -->|method| c247dc28_3098_5618_86b4_bb69dd98294c
  cb9a8aa4_f9a8_29b4_1b23_d38d8213e4f6["hashCode()"]
  319d8d0c_efd5_a3f6_4932_87e3844a665f -->|method| cb9a8aa4_f9a8_29b4_1b23_d38d8213e4f6
  bee8eb87_e714_b8cd_7d48_d73ec9785175["equals()"]
  319d8d0c_efd5_a3f6_4932_87e3844a665f -->|method| bee8eb87_e714_b8cd_7d48_d73ec9785175
  c6c31683_d481_d04d_5ffd_599076642f58["compareTo()"]
  319d8d0c_efd5_a3f6_4932_87e3844a665f -->|method| c6c31683_d481_d04d_5ffd_599076642f58

Relationship Graph

Source Code

common/src/main/java/io/netty/util/AbstractConstant.java lines 23–89

public abstract class AbstractConstant<T extends AbstractConstant<T>> implements Constant<T> {

    private static final AtomicLong uniqueIdGenerator = new AtomicLong();
    private final int id;
    private final String name;
    private final long uniquifier;

    /**
     * Creates a new instance.
     */
    protected AbstractConstant(int id, String name) {
        this.id = id;
        this.name = name;
        this.uniquifier = uniqueIdGenerator.getAndIncrement();
    }

    @Override
    public final String name() {
        return name;
    }

    @Override
    public final int id() {
        return id;
    }

    @Override
    public final String toString() {
        return name();
    }

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

    @Override
    public final boolean equals(Object obj) {
        return super.equals(obj);
    }

    @Override
    public final int compareTo(T o) {
        if (this == o) {
            return 0;
        }

        @SuppressWarnings("UnnecessaryLocalVariable")
        AbstractConstant<T> other = o;
        int returnCode;

        returnCode = hashCode() - other.hashCode();
        if (returnCode != 0) {
            return returnCode;
        }

        if (uniquifier < other.uniquifier) {
            return -1;
        }
        if (uniquifier > other.uniquifier) {
            return 1;
        }

        throw new Error("failed to compare two different constants");
    }

}

Frequently Asked Questions

What is the AbstractConstant class?
AbstractConstant is a class in the netty codebase, defined in common/src/main/java/io/netty/util/AbstractConstant.java.
Where is AbstractConstant defined?
AbstractConstant is defined in common/src/main/java/io/netty/util/AbstractConstant.java at line 23.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free