/*
* myLib - https://github.com/taktod/myLib
* Copyright (c) 2014 ttProject. All rights reserved.
*
* Licensed under GNU LESSER GENERAL PUBLIC LICENSE Version 3.
*/
package com.ttProject.flazr.unit;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
/**
* management for amf0Object.
* there are two amf0Object. for myLib.container.flv and flazr.
* @author taktod
*/
@SuppressWarnings("unchecked")
public class Amf0ObjectManager {
/**
* from myLib.container.flv.AMF to flazr.AMF
*/
public Object toFlazrObject(Object obj) {
if(obj instanceof com.ttProject.container.flv.amf.Amf0Object) {
com.ttProject.container.flv.amf.Amf0Object<String, Object> amf0Object = (com.ttProject.container.flv.amf.Amf0Object<String, Object>)obj;
com.flazr.amf.Amf0Object result = new com.flazr.amf.Amf0Object();
for(Entry<String, Object> entry : amf0Object.entrySet()) {
result.put(entry.getKey(), toFlazrObject(entry.getValue()));
}
return result;
}
else if(obj instanceof Map) {
Map<String, Object> map = (Map<String, Object>)obj;
Map<String, Object> result = new LinkedHashMap<String, Object>();
for(Entry<String, Object> entry : map.entrySet()) {
result.put(entry.getKey(), toFlazrObject(entry.getValue()));
}
return result;
}
else if(obj instanceof List) {
List<Object> list = (List<Object>)obj;
List<Object> result = new ArrayList<Object>();
for(Object element : list) {
result.add(toFlazrObject(element));
}
}
return obj;
}
/**
* from flazr.AMF to myLib.container.flv.AMF
*/
public Object toMyLibObject(Object obj) {
if(obj instanceof com.flazr.amf.Amf0Object) {
com.flazr.amf.Amf0Object amf0Object = (com.flazr.amf.Amf0Object)obj;
com.ttProject.container.flv.amf.Amf0Object<String, Object> result = new com.ttProject.container.flv.amf.Amf0Object<String, Object>();
for(Entry<String, Object> entry : amf0Object.entrySet()) {
result.put(entry.getKey(), toMyLibObject(entry.getValue()));
}
}
else if(obj instanceof Map) {
Map<String, Object> map = (Map<String, Object>)obj;
Map<String, Object> result = new LinkedHashMap<String, Object>();
for(Entry<String, Object> entry : map.entrySet()) {
result.put(entry.getKey(), toMyLibObject(entry.getValue()));
}
return result;
}
else if(obj instanceof List) {
List<Object> list = (List<Object>)obj;
List<Object> result = new ArrayList<Object>();
for(Object element : list) {
result.add(toMyLibObject(element));
}
}
return obj;
}
}