public void addContentProvider(Iterable<String> contentProvider) { impl.addContentProvider(contentProvider); }
@Override public Iterator<Iterable<String>> iterator() { return impl.contentProvidersIterator(); } };
@Override public byte[] getOrDecideContent(Map<Element, LayoutDecisionMap> alreadyDecided, byte[] contentHint) { return encode(); }
@Override public Iterator<String> iterator() { return impl.iterator(); } };
@Override public Iterable<BuildDependency> getDependencies(Map<Element, LayoutDecisionMap> decisions) { return ObjectFile.defaultDependencies(decisions, getElement()); }
@Override public int getMemSize(Map<Element, LayoutDecisionMap> alreadyDecided) { return impl.getMemSize(alreadyDecided); }
@Override public byte[] getOrDecideContent(Map<Element, LayoutDecisionMap> alreadyDecided, byte[] contentHint) { return impl.getOrDecideContent(alreadyDecided, contentHint); }
@Override public Iterable<BuildDependency> getDependencies(Map<Element, LayoutDecisionMap> decisions) { return impl.getDependencies(decisions); }
@Override public Iterator<String> iterator() { return impl.iterator(); }
private byte[] encode() { /* * Create a string table, put each string into it and blat it into a byte buffer. */ StringTable t = new StringTable(); if (contentProviders == null) { throw new IllegalStateException("no content provider assigned"); } /* * Add the empty string so that we begin with it (i.e. a '\0' byte). DWARF and ELF string * sections both require this, and it does no harm even if not required. */ t.add(""); for (String s : this) { assert s != null; t.add(s); } OutputAssembler oa = AssemblyBuffer.createOutputAssembler(getElement().getOwner().getByteOrder()); t.write(oa); return oa.getBlob(); }
@Override public int getMemSize(Map<Element, LayoutDecisionMap> alreadyDecided) { return impl.getMemSize(alreadyDecided); }
@Override public byte[] getOrDecideContent(Map<Element, LayoutDecisionMap> alreadyDecided, byte[] contentHint) { return impl.getOrDecideContent(alreadyDecided, contentHint); }
@Override public Iterable<BuildDependency> getDependencies(Map<Element, LayoutDecisionMap> decisions) { return impl.getDependencies(decisions); }
public void setContentProvider(Iterable<String> contentProvider) { impl.addContentProvider(contentProvider); }
@Override public byte[] getContent() { return encode(); }
@Override public void setContent(byte[] c) { addContentProvider(new StringTable(c).stringMap.values()); } }