code: @Override
  	public Object readObject() {
  		String className;
  		if (currentDataType == AMF.TYPE_CLASS_OBJECT) {
  			className = getString();
  			log.debug("readObject: {}", className);
  			if (className != null) {
  				log.debug("read class object");
  				Object result = null;
  				Object instance;
  				if (className.equals("RecordSet")) {
  					result = new RecordSet(this);
  					storeReference(result);
  				} else if (className.equals("RecordSetPage")) {
  					result = new RecordSetPage(this);
  					storeReference(result);
  				} else if (!classAllowed(className)) {
  					log.debug("Class creation is not allowed {}", className);
  					result = readSimpleObject();
  				} else {
  					instance = newInstance(className);
  					if (instance != null) {
  						result = readBean(instance);
  					} else {
  						log.debug("Forced to use simple object for class {}",
  								className);
  						result = readSimpleObject();
  					}
  				}
  				return result;
  			}
  		}
  		return readSimpleObject();
  	}
docs: Reads start object
  
  @return Read object