content: package im.actor.core.api;
  /*
   *  Generated by the Actor API Scheme generator.  DO NOT EDIT!
   */
  
  import im.actor.runtime.bser.*;
  import im.actor.runtime.collections.*;
  import static im.actor.runtime.bser.Utils.*;
  import im.actor.core.network.parser.*;
  import org.jetbrains.annotations.Nullable;
  import org.jetbrains.annotations.NotNull;
  import com.google.j2objc.annotations.ObjectiveCName;
  import java.io.IOException;
  import java.util.List;
  import java.util.ArrayList;
  
  public abstract class ApiEvent extends BserObject {
      public static ApiEvent fromBytes(byte[] src) throws IOException {
          BserValues values = new BserValues(BserParser.deserialize(new DataInput(src, 0, src.length)));
          int key = values.getInt(1);
          byte[] content = values.getBytes(2);
          switch(key) { 
              case 1: return Bser.parse(new ApiUntypedEvent(), content);
              case 2: return Bser.parse(new ApiContentViewChanged(), content);
              case 4: return Bser.parse(new ApiAppVisibleChanged(), content);
              default: return new ApiEventUnsupported(key, content);
          }
      }
      public abstract int getHeader();
  
      public byte[] buildContainer() throws IOException {
          DataOutput res = new DataOutput();
          BserWriter writer = new BserWriter(res);
          writer.writeInt(1, getHeader());
          writer.writeBytes(2, toByteArray());
          return res.toByteArray();
      }
  
  }
  