code: public static <E extends SpecificRecord, S extends SpecificRecord> Dao<E> buildCompositeDaoWithInputStream(
        HTablePool tablePool, String tableName,
        List<InputStream> subEntitySchemaStreams, Class<E> entityClass) {
  
      List<String> subEntitySchemaStrings = new ArrayList<String>();
      for (InputStream subEntitySchemaStream : subEntitySchemaStreams) {
        subEntitySchemaStrings.add(AvroUtils
            .inputStreamToString(subEntitySchemaStream));
      }
      return buildCompositeDao(tablePool, tableName, subEntitySchemaStrings,
          entityClass);
    }
docs: Create a CompositeDao, which will return SpecificRecord instances
  represented by the entitySchemaString avro schema. This avro schema must be
  a composition of the schemas in the subEntitySchemaStrings list.
  
  @param tablePool
  An HTablePool instance to use for connecting to HBase
  @param tableName
  The table name this dao will read from and write to
  @param keySchemaStream
  The Avro schema input stream that represents the StorageKey structure for
  row keys in this table.
  @param subEntitySchemaStreams
  The list of entities that make up the composite. This list must be
  in the same order as the fields defined in the entitySchemaString.
  @param keyClass
  The class of the SpecificRecord representing the StorageKey of rows this
  dao will fetch.
  @param entityClass
  The class of the SpecificRecord this DAO will persist and fetch.
  @return The CompositeDao instance.
  @throws SchemaNotFoundException
  @throws ValidationException