static List<AsNumber> parseAsSegment(final ReferenceCache refCache, final int count, final ByteBuf buffer) { final List<AsNumber> coll = new ArrayList<>(count); for (int i = 0; i < count; i++) { coll.add(refCache.getSharedReference(new AsNumber(buffer.readUnsignedInt()))); } return (coll.isEmpty()) ? Collections.<AsNumber>emptyList() : coll; }
/** * Creates a Community from its String representation. * * @param refCache reference cache to use * @param string String representation of a community * @return new Community */ public static Community valueOf(final ReferenceCache refCache, final String string) { final String[] parts = string.split(":", 2); final CommunitiesBuilder builder = new CommunitiesBuilder(); builder.setAsNumber(refCache.getSharedReference(new AsNumber(Long.valueOf(parts[0])))); builder.setSemantics(refCache.getSharedReference(Integer.valueOf(parts[1]))); return refCache.getSharedReference(builder.build()); } }
/** * Creates a new Community given AS number value and semantics using generated CommunitiesBuilder. * * @param refCache reference cache to use * @param asn long * @param semantics int * @return new Community */ public static Community create(final ReferenceCache refCache, final long asn, final int semantics) { final CommunitiesBuilder builder = new CommunitiesBuilder(); builder.setAsNumber(refCache.getSharedReference(new AsNumber(asn))); builder.setSemantics(refCache.getSharedReference(semantics)); return refCache.getSharedReference(builder.build()); }
/** * Parse {@link Aggregator} from bytes * * @param buffer byte buffer to be parsed * @param builder AttributesBuilder into which parsed {@link Aggregator} will be set */ @Override public void parseAttribute(final ByteBuf buffer, final AttributesBuilder builder) { final AsNumber asNumber = this.refCache.getSharedReference(new AsNumber(buffer.readUnsignedInt())); final Ipv4Address address = Ipv4Util.addressForByteBuf(buffer); builder.setAggregator(new AggregatorBuilder().setAsNumber(asNumber).setNetworkAddress(address).build()); }