create a {@link DynamicManager} {@link DynamicManagement}

@param field
@param device
@param businessObject
@throws DevFailed
176867
public void build(final Field field, final DeviceImpl device, final Object businessObject) throws DevFailed {
        xlogger.entry();
        final String name = field.getName();
        logger.debug("Has a DynamicAttributeManagement : {}", name);
        BuilderUtils.checkStatic(field);

        final String setterName = BuilderUtils.SET + name.substring(0, 1).toUpperCase(Locale.ENGLISH)
                + name.substring(1);
        try {
            final String deviceName = device.getName().toLowerCase(Locale.ENGLISH);
            final Method setter = businessObject.getClass().getMethod(setterName, DynamicManager.class);
            if (DYN_MNGRS.containsKey(deviceName)) {
                setter.invoke(businessObject, DYN_MNGRS.get(deviceName));
            } else {
                final DynamicManager mnger = new DynamicManager(device);
                setter.invoke(businessObject, mnger);
                DYN_MNGRS.put(deviceName, mnger);
            }
        } catch (final IllegalArgumentException e) {
            throw DevFailedUtils.newDevFailed(e);
        } catch (final IllegalAccessException e) {
            throw DevFailedUtils.newDevFailed(e);
        } catch (final InvocationTargetException e) {
            throw DevFailedUtils.newDevFailed(e);
        } catch (final NoSuchMethodException e) {
            throw DevFailedUtils.newDevFailed(e);
        } catch (final SecurityException e) {
            throw DevFailedUtils.newDevFailed(e);
        }
        xlogger.exit();
    }
29630
public void putDevicePipeProperty(Database database, String deviceName, DbPipe dbPipe) throws DevFailed {
        DeviceData argIn = new DeviceData();
        String[]    array = ApiUtil.toStringArray(deviceName, dbPipe);
        argIn.insert(array);
        database.command_inout("DbPutDevicePipeProperty", argIn);
    }
858560
public void build(final Class<?> clazz, final Field field, final DeviceImpl device, final Object businessObject)
            throws DevFailed {
        xlogger.entry();
        BuilderUtils.checkStatic(field);
        Method getter;
        final String stateName = field.getName();
        final String getterName = BuilderUtils.GET + stateName.substring(0, 1).toUpperCase(Locale.ENGLISH)
                + stateName.substring(1);
        try {
            getter = clazz.getMethod(getterName);
        } catch (final NoSuchMethodException e) {
            throw DevFailedUtils.newDevFailed(e);
        }
        if (getter.getParameterTypes().length != 0) {
            throw DevFailedUtils.newDevFailed(DevFailedUtils.TANGO_BUILD_FAILED, getter + " must not have a parameter");
        }

        logger.debug("Has an status : {}", field.getName());
        if (getter.getReturnType() != String.class) {
            throw DevFailedUtils.newDevFailed(DevFailedUtils.TANGO_BUILD_FAILED, getter + " must have a return type of  "
                    + String.class);
        }
        Method setter;
        final String setterName = BuilderUtils.SET + stateName.substring(0, 1).toUpperCase(Locale.ENGLISH)
                + stateName.substring(1);
        try {
            setter = clazz.getMethod(setterName, String.class);
        } catch (final NoSuchMethodException e) {
            throw DevFailedUtils.newDevFailed(e);
        }
        device.setStatusImpl(new StatusImpl(businessObject, getter, setter));
        final Status annot = field.getAnnotation(Status.class);
        if (annot.isPolled()) {
            device.addAttributePolling(DeviceImpl.STATUS_NAME, annot.pollingPeriod());
        }
        xlogger.exit();
    }
52802
private void connect(DeviceProxy device_proxy, String attributeName, String eventName, DeviceData deviceData) throws DevFailed {
        String deviceName = device_proxy.name();
        String adm_name = null;
        try {
            adm_name = device_proxy.adm_name();
        } catch (DevFailed e) {
            Except.throw_event_system_failed("API_BadConfigurationProperty",
                    "Can't subscribe to event for device " + deviceName
                            + "\n Check that device server is running...",
                    "NotifdEventConsumer.connect");
        }
        String channelName = adm_name;
        // If no connection exists to this channel, create it
        Database dbase = null;
        if (!channel_map.containsKey(channelName)) {
            if (device_proxy.use_db())
                dbase = device_proxy.get_db_obj();
            ConnectionStructure connectionStructure =
                    new ConnectionStructure(device_proxy.get_tango_host(), channelName,
                        deviceName, attributeName, eventName, dbase, deviceData, false);
            connect_event_channel(connectionStructure);
        } else if (device_proxy.use_db()) {
            dbase = device_proxy.get_db_obj();
        }
        EventChannelStruct eventChannelStruct = channel_map.get(channelName);
        eventChannelStruct.adm_device_proxy = device_proxy.get_adm_dev();
        eventChannelStruct.use_db = device_proxy.use_db();
        eventChannelStruct.dbase = dbase;

        device_channel_map.put(deviceName, channelName);
    }
579132
@Override
    public void exportDevice(final DeviceExportInfo info) throws DevFailed {
        final String[] array = info.toStringArray();
        final DeviceData argin = new DeviceData();
        argin.insert(array);
        database.command_inout("DbExportDevice", argin);
    }
674812
public void put_device_property(String name, DbDatum[] properties) throws DevFailed {
		databaseDAO.put_device_property(this, name, properties);
	}
646065
public DbDatum get_device_property(String name, String propname) throws DevFailed {
		return databaseDAO.get_device_property(this, name, propname);
	}
974944
public void put_property(DbDatum property)
            throws DevFailed {
        DbAttribute db_att = new DbAttribute(deviceName);
        db_att.add(property);
        dev.put_attribute_property(db_att);
    }
1090776
@Override
    protected void checkIfAlreadyConnected(DeviceProxy device, String attribute, String event_name, CallBack callback, int max_size, boolean stateless) throws DevFailed {
        //  Nothing to do (only override)
    }
98822
public void add(final String p) throws DevFailed {
	synchronized (this) {

	    final Vector v = factory.instanciate(p);
	    final Iterator it = v.iterator();
	    while (it.hasNext()) {
		add_i((GroupElement) it.next());
	    }

	}
    }
788413
public int subscribe_event(int event, CallBack callback, String[] filters) throws DevFailed {
        return dev.subscribe_event(deviceName, event, callback, filters);
    }
1103944
public void insert(final Object value) throws DevFailed {
        for (int i = 0; i < group.get_size(true); i++) {
            final int arginType = group.get_device(i + 1).command_query(commandName).in_type;
            InsertExtractUtils.insert(inData[i], arginType, value);
        }
    }
957427
public DevVarLongStringArray subscribe(final String deviceName) throws DevFailed {
        xlogger.entry();
        // If first time start the ZMQ management
        if (!isInitialized) {
            initialize();
        }

        // check if event is already subscribed
        final String fullName = EventUtilities.buildDeviceEventName(deviceName, EventType.INTERFACE_CHANGE_EVENT);
        EventImpl eventImpl = eventImplMap.get(fullName);
        if (eventImpl == null) {
            // If not already manage, create EventImpl object and add it to the map
            eventImpl = new EventImpl(DeviceImpl.SERVER_VERSION, fullName);
            eventImplMap.put(fullName, eventImpl);
        } else {
            eventImpl.updateSubscribeTime();
        }

        return buildConnectionParameters(fullName);
    }
292479
public Any execute(DeviceImpl device, Any in_any) throws DevFailed
	{

		Util.out4.println("PolledDeviceCmd.execute(): arrived ");

		// Call the device method and return to caller
		return insert(((DServer)(device)).polled_device());
	}
721598
public List<DbHistory> getDevicePipePropertyHistory(String deviceName,String pipeName,
                                                             String propertyName) throws DevFailed {
        return databaseDAO.getDevicePipePropertyHistory(this, deviceName, pipeName, propertyName);
    }
279031
@Override
    public void (final int timeout, final boolean fwd) throws DevFailed {
	synchronized (this) {
	    final Iterator it = elements.iterator();
	    while (it.hasNext()) {
		final GroupElement e = (GroupElement) it.next();
		if (e instanceof GroupDeviceElement || fwd) {
		    e.(timeout, fwd);
		}
	    }
	}
    }
270406
public void build(final DeviceImpl device, final Object businessObject, final Method m, final boolean isOnDeviceImpl)
            throws DevFailed {
        xlogger.entry();
        final Command annot = m.getAnnotation(Command.class);
        // retrieve parameter type
        final Class<?>[] paramTypeTable = m.getParameterTypes();
        if (paramTypeTable.length > 1) {
            throw DevFailedUtils.newDevFailed("INIT_FAILED", "Command can have only one parameter");
        }
        Class<?> paramType;
        if (paramTypeTable.length == 0) {
            paramType = Void.class;
        } else {
            paramType = paramTypeTable[0];
        }
        // retrieve returned type
        final Class<?> returnedType = m.getReturnType();
        // logger
        // .debug("get returned type of cmd {}", returnedType
        // .getCanonicalName());
        String cmdName;
        if ("".equals(annot.name())) {
            cmdName = m.getName();
        } else {
            cmdName = annot.name();
        }
        logger.debug("Has a command: {} type {}", cmdName, paramType.getCanonicalName());
        final CommandConfiguration config = new CommandConfiguration(cmdName, paramType, returnedType,
                annot.inTypeDesc(), annot.outTypeDesc(), DispLevel.from_int(annot.displayLevel()), annot.isPolled(),
                annot.pollingPeriod());

        ReflectCommandBehavior behavior = null;
        if (isOnDeviceImpl) {
            behavior = new ReflectCommandBehavior(m, device, config);

        } else {
            behavior = new ReflectCommandBehavior(m, businessObject, config);
        }
        final CommandImpl command = new CommandImpl(behavior, device.getName());
        BuilderUtils.setStateMachine(m, command);
        device.addCommand(command);
        xlogger.exit();
    }