docs: @SuppressWarnings("unchecked")
      public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
          super.readExternal(in);
          rule = (RuleImpl) in.readObject();
          subrule = (GroupElement) in.readObject();
          subruleIndex = in.readInt();
          previousTupleSinkNode = (LeftTupleSinkNode) in.readObject();
          nextTupleSinkNode = (LeftTupleSinkNode) in.readObject();
  
          salienceDeclarations = ( Declaration[]) in.readObject();
          enabledDeclarations = ( Declaration[]) in.readObject();
          consequenceName = (String) in.readObject();
  
          fireDirect = rule.getActivationListener().equals( "direct" );
  
          initDeclarations();
      }