/*
* Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.tsdr.collectors.cmc.mdsal;
import org.datasand.codec.TypeDescriptor;
import org.datasand.codec.observers.IClassExtractorObserver;
import org.opendaylight.yangtools.yang.binding.DataObject;
/**
* @author - Sharon Aicler (saichler@cisco.com)
*/
public class MDSALClassExtractor implements IClassExtractorObserver{
@Override
public Class<?> getObjectClass(Object obj) {
if(obj instanceof DataObject){
return ((DataObject)obj).getImplementedInterface();
}
return obj.getClass();
}
@Override
public Class<?> getBuilderClass(TypeDescriptor td) {
if(DataObject.class.isAssignableFrom(td.getTypeClass())){
try{
return getClass().getClassLoader().loadClass(td.getTypeClassName()+"Builder");
}catch(Exception err){}
}
return null;
}
@Override
public String getBuilderMethod(TypeDescriptor td) {
if(DataObject.class.isAssignableFrom(td.getTypeClass())){
return "build()";
}
return null;
}
}