Home / Class/ InternalAttribute Class — netty Architecture

InternalAttribute Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  431cc176_2e7e_e5dd_cd84_a728158cf079["InternalAttribute"]
  25806716_6e33_3967_98b5_46838787cfa2["InternalAttribute.java"]
  431cc176_2e7e_e5dd_cd84_a728158cf079 -->|defined in| 25806716_6e33_3967_98b5_46838787cfa2
  f96a96fb_bfc9_79ae_fe3b_46981c4acdd5["InternalAttribute()"]
  431cc176_2e7e_e5dd_cd84_a728158cf079 -->|method| f96a96fb_bfc9_79ae_fe3b_46981c4acdd5
  086ceac3_794b_e2b2_d3e2_9fd34f7fb359["HttpDataType()"]
  431cc176_2e7e_e5dd_cd84_a728158cf079 -->|method| 086ceac3_794b_e2b2_d3e2_9fd34f7fb359
  53249bee_a146_c40f_5dc5_d836d57fb4db["addValue()"]
  431cc176_2e7e_e5dd_cd84_a728158cf079 -->|method| 53249bee_a146_c40f_5dc5_d836d57fb4db
  118bc8f6_d772_e57b_5309_257181bf55e9["setValue()"]
  431cc176_2e7e_e5dd_cd84_a728158cf079 -->|method| 118bc8f6_d772_e57b_5309_257181bf55e9
  2e94acd0_892e_8afb_2f41_931dcd687366["hashCode()"]
  431cc176_2e7e_e5dd_cd84_a728158cf079 -->|method| 2e94acd0_892e_8afb_2f41_931dcd687366
  21d9c01e_ace5_3c60_75eb_ce4a2874cd4f["equals()"]
  431cc176_2e7e_e5dd_cd84_a728158cf079 -->|method| 21d9c01e_ace5_3c60_75eb_ce4a2874cd4f
  1978b668_13d2_eecd_c063_2c3d664f07e7["compareTo()"]
  431cc176_2e7e_e5dd_cd84_a728158cf079 -->|method| 1978b668_13d2_eecd_c063_2c3d664f07e7
  0952ad42_5f79_6884_2d41_19a1adcf3b6b["String()"]
  431cc176_2e7e_e5dd_cd84_a728158cf079 -->|method| 0952ad42_5f79_6884_2d41_19a1adcf3b6b
  46ca9978_0ddf_b859_c419_d82d7097f2d3["size()"]
  431cc176_2e7e_e5dd_cd84_a728158cf079 -->|method| 46ca9978_0ddf_b859_c419_d82d7097f2d3
  d20b1d1f_1c95_a3c4_0bb8_60dce90f3ea8["ByteBuf()"]
  431cc176_2e7e_e5dd_cd84_a728158cf079 -->|method| d20b1d1f_1c95_a3c4_0bb8_60dce90f3ea8
  315506a9_1e68_53fa_08eb_1178fc905852["deallocate()"]
  431cc176_2e7e_e5dd_cd84_a728158cf079 -->|method| 315506a9_1e68_53fa_08eb_1178fc905852
  11220619_357f_d9a3_28a3_434192f9ca4e["InterfaceHttpData()"]
  431cc176_2e7e_e5dd_cd84_a728158cf079 -->|method| 11220619_357f_d9a3_28a3_434192f9ca4e

Relationship Graph

Source Code

codec-http/src/main/java/io/netty/handler/codec/http/multipart/InternalAttribute.java lines 31–155

final class InternalAttribute extends AbstractReferenceCounted implements InterfaceHttpData {
    private final List<ByteBuf> value = new ArrayList<ByteBuf>();
    private final Charset charset;
    private int size;

    InternalAttribute(Charset charset) {
        this.charset = charset;
    }

    @Override
    public HttpDataType getHttpDataType() {
        return HttpDataType.InternalAttribute;
    }

    public void addValue(String value) {
        ObjectUtil.checkNotNull(value, "value");
        ByteBuf buf = Unpooled.copiedBuffer(value, charset);
        this.value.add(buf);
        size += buf.readableBytes();
    }

    public void addValue(String value, int rank) {
        ObjectUtil.checkNotNull(value, "value");
        ByteBuf buf = Unpooled.copiedBuffer(value, charset);
        this.value.add(rank, buf);
        size += buf.readableBytes();
    }

    public void setValue(String value, int rank) {
        ObjectUtil.checkNotNull(value, "value");
        ByteBuf buf = Unpooled.copiedBuffer(value, charset);
        ByteBuf old = this.value.set(rank, buf);
        if (old != null) {
            size -= old.readableBytes();
            old.release();
        }
        size += buf.readableBytes();
    }

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

    @Override
    public boolean equals(Object o) {
        if (!(o instanceof InternalAttribute)) {
            return false;
        }
        InternalAttribute attribute = (InternalAttribute) o;
        return getName().equalsIgnoreCase(attribute.getName());
    }

    @Override
    public int compareTo(InterfaceHttpData o) {
        if (!(o instanceof InternalAttribute)) {
            throw new ClassCastException("Cannot compare " + getHttpDataType() +
                    " with " + o.getHttpDataType());
        }
        return compareTo((InternalAttribute) o);
    }

    public int compareTo(InternalAttribute o) {
        return getName().compareToIgnoreCase(o.getName());
    }

    @Override
    public String toString() {
        StringBuilder result = new StringBuilder();
        for (ByteBuf elt : value) {
            result.append(elt.toString(charset));
        }
        return result.toString();
    }

    public int size() {
        return size;
    }

    public ByteBuf toByteBuf() {
        return Unpooled.compositeBuffer().addComponents(value).writerIndex(size()).readerIndex(0);

Frequently Asked Questions

What is the InternalAttribute class?
InternalAttribute is a class in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/multipart/InternalAttribute.java.
Where is InternalAttribute defined?
InternalAttribute is defined in codec-http/src/main/java/io/netty/handler/codec/http/multipart/InternalAttribute.java at line 31.

Analyze Your Own Codebase

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

Try Supermodel Free