⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 defaultadftobeanconverter.java

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	
	/*
	 * (non-Javadoc)
	 * @see com.esri.solutions.jitk.web.tasks.mapcomp.IADFToBeanConverter#createLayerFieldListType(com.esri.arcgisws.MapLayerInfo)
	 */
	@SuppressWarnings("unchecked")
	public LayerFieldListType createLayerFieldListType (MapLayerInfo info) {
		
		if (info == null) {
			throw new NullPointerException ();
		}
		
		LayerFieldListType fieldList = null;
		
		try {
			fieldList = m_factory.createLayerFieldListType();
			
			if (info.getFields() != null) {
				Field[] fields = info.getFields().getFieldArray();
				
				for (int i = 0; i < fields.length; i++) {
					fieldList.getLayerField().add(createLayerFieldType(fields[i]));
				}
			}
			
			return fieldList;
			
		} catch (JAXBException e) {
			LOG.warn("", e);
		}
		
		return null;
	}
	
	/*
	 * (non-Javadoc)
	 * @see com.esri.solutions.jitk.web.tasks.mapcomp.IADFToBeanConverter#createLayerFieldType(com.esri.arcgisws.Field)
	 */
	public LayerFieldType createLayerFieldType (Field field) {
		LayerFieldType layerField = null;
		
		try {
			layerField = m_factory.createLayerFieldType();
			
			layerField.setDisplayName(field.getName());
			// TODO: Determine how to tell if Field is a hotlink field.
			layerField.setIsHotlink(false);
			
			return layerField;
		} catch (JAXBException e) {
			LOG.warn("", e);
		}
		
		
		return null;
	}
	
	/*
	 * (non-Javadoc)
	 * @see com.esri.solutions.jitk.web.tasks.mapcomp.IADFToBeanConverter#createAgsLocalServiceType(com.esri.adf.web.ags.data.AGSLocalMapResource)
	 */
	@SuppressWarnings("unchecked")
	public AgsLocalServiceType createAgsLocalServiceType (AGSLocalMapResource res) {
		AgsLocalServiceType svc = null;
		
		try {
			svc = m_factory.createAgsLocalService();
			
			svc.setDisplayName(res.getAlias());
			HostList hostList = m_factory.createHostList();
			hostList.getHost().addAll(res.getHosts());
			svc.setHostList(hostList);
			svc.setIdentity(createIdentityType(res.getUser()));
			svc.setServiceName(res.getServerObjectName());
			
			AGSMapFunctionality func = (AGSMapFunctionality)res.getFunctionality("map");
			
			double trans = func.getTransparency();
			
			if (trans < 1.0) {
				svc.setIsTransparentBackground(true);
			} else {
				svc.setIsTransparentBackground(false);
			}
			
			updateDisplaySettings(res, svc);
			
			MapLayerInfo[] layerInfos = func.getLayerInfos();
			LayerListType layerList = createLayerListType(layerInfos);
			svc.setLayers(layerList);
			
			return svc;
		} catch (JAXBException e) {
			LOG.warn("", e);
		}
		
		return null;
	}

	/*
	 * (non-Javadoc)
	 * @see com.esri.solutions.jitk.web.tasks.mapcomp.IADFToBeanConverter#createLayerListType(com.esri.arcgisws.MapLayerInfo[])
	 */
	@SuppressWarnings("unchecked")
	public LayerListType createLayerListType(MapLayerInfo[] layerInfos) {
		try {
			LayerListType layerList = m_factory.createLayerListType();
			for (int i = 0; i < layerInfos.length; i++) {
				if (!layerInfos[i].isIsComposite()) {
					ServiceLayerType serviceLayer = createServiceLayerType(layerInfos[i]);
					if (serviceLayer != null) {
						try {
							LayerItemType li = m_factory.createLayerListTypeLayerItemType();
							li.setServiceLayer(serviceLayer);
							layerList.getLayerItem().add(li);
						} catch (JAXBException e) {
							LOG.warn("", e);
						}
					}
				}
			}
			return layerList;
		} catch (JAXBException e) {
			LOG.warn("", e);
		}
		
		return null;
	}
	
	/*
	 * (non-Javadoc)
	 * @see com.esri.solutions.jitk.web.tasks.mapcomp.IADFToBeanConverter#createArcImsInternetServiceType(com.esri.adf.web.aims.data.AIMSMapResource)
	 */
	public ArcImsInternetServiceType createArcImsInternetServiceType (AIMSMapResource res) {
		ArcImsInternetServiceType svc = null;
		
		try {
			svc = m_factory.createArcImsInternetService();
			
			svc.setDisplayName(res.getAlias());
			svc.setUrl(res.getHostName());
			svc.setServiceName(res.getServiceName());
			
			AIMSMapFunctionality func = (AIMSMapFunctionality)res.getFunctionality("map");
			
			double trans = func.getTransparency();
			
			if (trans < 1.0) {
				svc.setIsTransparentBackground(true);
			} else {
				svc.setIsTransparentBackground(false);
			}
			
			svc.setIdentity(createIdentityType(res.getUserName(), res.getPassword(), res.isPasswordEncrypted()));
			
			updateDisplaySettings(res, svc);
			
			LayerListType layerList = createLayerListType (func.getMap().getLayers());
			svc.setLayers(layerList);
			
			return svc;
		} catch (JAXBException e) {
			LOG.warn("", e);
		}
		
		return null;
	}
	
	/*
	 * (non-Javadoc)
	 * @see com.esri.solutions.jitk.web.tasks.mapcomp.IADFToBeanConverter#createLayerListType(com.esri.aims.mtier.model.map.Layers)
	 */
	@SuppressWarnings("unchecked")
	public LayerListType createLayerListType(Layers layers) {
		if (layers == null) {
			throw new NullPointerException ();
		}
		try {
			LayerListType layerList = m_factory.createLayerListType();
			
			for (Object o : layers.getLayersCollection()) {
				Layer layer = (Layer) o;
				ServiceLayerType serviceLayer = null;
				serviceLayer = createServiceLayerType(layer);
				if (serviceLayer != null) {
					LayerItemType li;
					try {
						li = m_factory.createLayerListTypeLayerItemType();
						li.setServiceLayer(serviceLayer);
						layerList.getLayerItem().add(li);
					} catch (JAXBException e) {
						LOG.warn("", e);
					}
					
				}	
			}
			
			
			return layerList;
		} catch (JAXBException e) {
			LOG.warn("", e);
		}
		
		return null;
	}

	/*
	 * (non-Javadoc)
	 * @see com.esri.solutions.jitk.web.tasks.mapcomp.IADFToBeanConverter#createServiceLayerType(com.esri.aims.mtier.model.map.layer.Layer)
	 */
	public ServiceLayerType createServiceLayerType(Layer layer) {
		ServiceLayer serviceLayer = null;
		
		try {
			serviceLayer = m_factory.createServiceLayer();
			
			serviceLayer.setId(layer.getID());
			serviceLayer.setName(layer.getName());
			
			// TODO: Add support for retrieving Fields from ArcIMS
			// Issue: ArcIMS JConnect library does not provide easy
			// way to retrieve fields for FeatureLayer.  Need to do
			// a ServiceInfo request.
			serviceLayer.setFields(m_factory.createLayerFieldListType());
			
			return serviceLayer;
			
		} catch (JAXBException e) {
			LOG.warn("", e);
		}
		
		return null;
	}

	/*
	 * (non-Javadoc)
	 * @see com.esri.solutions.jitk.web.tasks.mapcomp.IADFToBeanConverter#createIdentityType(java.lang.String, java.lang.String, boolean)
	 */
	public IdentityType createIdentityType(String userName, String password,
			boolean passwordEncrypted) {
		
		IdentityType id = null;
		Cryptographer crypto = new Cryptographer();
		
		try {
			if (userName != null && password != null) {
				id = m_factory.createIdentityType();
				
				id.setUserName(userName);
				
				if (passwordEncrypted) {
					id.setPassword(password);
					id.setIsEncrypted(true);
				} else {
					id.setPassword(crypto.encrypt(password));
					id.setIsEncrypted(true);
				}
				
				return id;
			}
		} catch (SecurityException e) {
			LOG.warn("", e);
		} catch (JAXBException e) {
			LOG.warn("", e);
		}
		
		return null;
	}

	/*
	 * (non-Javadoc)
	 * @see com.esri.solutions.jitk.web.tasks.mapcomp.IADFToBeanConverter#createArcWebServiceType(com.esri.adf.web.aws.data.AWSMapResource)
	 */
	public ArcWebServiceType createArcWebServiceType (AWSMapResource res) {
		ArcWebServiceType svc = null;
		
		try {
			svc = m_factory.createArcWebService();
			
			svc.setAuthenticationEndPointUrl(res.getAuthenticationEndPointURL());
			svc.setDisplayName(res.getAlias());
			svc.setIdentity(createIdentityType(res.getUserName(), res.getPassword(), res.isPasswordEncrypted()));
			svc.setMapImageEndPointUrl(res.getMapImageEndPointURL());
			
			AWSMapFunctionality func = (AWSMapFunctionality)res.getFunctionality("map");
			
			double trans = func.getTransparency();
			
			if (trans < 1.0) {
				svc.setIsTransparentBackground(true);
			} else {
				svc.setIsTransparentBackground(false);
			}
			svc.setTransparency(trans);
			

			// TODO: Add support for ArcWeb Fields, if possible.
			
			return svc;
			
		} catch (JAXBException e) {
			LOG.warn("", e);
		}
		
		return null;
	}
	
	/*
	 * (non-Javadoc)
	 * @see com.esri.solutions.jitk.web.tasks.mapcomp.IADFToBeanConverter#createWmsServiceType(com.esri.adf.web.wms.data.WMSMapResource)
	 */
	public WmsServiceType createWmsServiceType (WMSMapResource res) {
		WmsServiceType svc = null;
		
		try {
			svc = m_factory.createWmsService();
			
			svc.setDisplayName(res.getAlias());
			svc.setGetCapabilitiesUrl(res.getWmsURL());
			boolean isTransparent = false;
			if (res.getWmsMap().isTransparent() == null) {
				isTransparent = false;
			} else {
				isTransparent = res.getWmsMap().isTransparent().booleanValue();
			}
				
			svc.setIsTransparentBackground(isTransparent);
			svc.setIdentity(null);
			
			updateDisplaySettings(res, svc);
			
			LayerListType layerList = createLayerListType(res.getWmsMap().getAllLayers());
			svc.setLayers(layerList);
			
			return svc;
		} catch (JAXBException e) {
			LOG.warn("", e);
		}
		
		return null;
	}
	
	/*
	 * (non-Javadoc)
	 * @see com.esri.solutions.jitk.web.tasks.mapcomp.IADFToBeanConverter#createLayerListType(java.util.List)
	 */
	@SuppressWarnings("unchecked")
	public LayerListType createLayerListType(
			List<com.esri.wms.client.Layer> allLayers) {
		
		LayerListType layerList = null;
		
		try {
			layerList = m_factory.createLayerListType();
			
			for (com.esri.wms.client.Layer layer : allLayers) {
				ServiceLayerType serviceLayer = null;
				serviceLayer = createServiceLayerType(layer);
				if (serviceLayer != null) {
					try {
						LayerItemType li = m_factory.createLayerListTypeLayerItemType();
						li.setServiceLayer(serviceLayer);
						layerList.getLayerItem().add(li);
					} catch (JAXBException e) {
						LOG.warn("", e);
					}
				}
			}
			
			return layerList;
		} catch (JAXBException e) {
			LOG.warn("", e);
		}
		
		return null;
	}

	/*
	 * (non-Javadoc)
	 * @see com.esri.solutions.jitk.web.tasks.mapcomp.IADFToBeanConverter#createServiceLayerType(com.esri.aims.mtier.model.map.layer.Layer)
	 */
	public ServiceLayerType createServiceLayerType(
			com.esri.wms.client.Layer layer) {
		ServiceLayer serviceLayer = null;
		
		
		try {
			serviceLayer = m_factory.createServiceLayer();
			serviceLayer.setId(layer.getName());
			serviceLayer.setName(layer.getName());
			
			return serviceLayer;
		} catch (JAXBException e) {
			LOG.warn("", e);
		}
		
		return null;
	}

	/*
	 * (non-Javadoc)
	 * @see com.esri.solutions.jitk.web.tasks.mapcomp.IADFToBeanConverter#createIdentityType(com.esri.adf.web.ags.data.AGSUser)
	 */
	public IdentityType createIdentityType (AGSUser user) {
		IdentityType id = null;
		Cryptographer crypto = new Cryptographer();
		
		try {
			id = m_factory.createIdentityType();
			
			id.setDomain(user.getDomain());
			id.setUserName(user.getUserName());
			
			if (user.isPasswordEncrypted()) {
				id.setPassword(user.getPassword());
				id.setIsEncrypted(true);
			} else {
				id.setIsEncrypted(true);
				id.setPassword(crypto.encrypt(user.getPassword()));
			}
			
			return id;
		} catch (SecurityException e) {
			LOG.warn("", e);
		} catch (JAXBException e) {
			LOG.warn("", e);
		}
		
		return null;
	}

	/*
	 * (non-Javadoc)
	 * @see com.esri.solutions.jitk.web.tasks.mapcomp.IADFToBeanConverter#clearMessages()
	 */
	public void clearMessages() {
	}

	/*
	 * (non-Javadoc)
	 * @see com.esri.solutions.jitk.web.tasks.mapcomp.IADFToBeanConverter#getMessages()
	 */
	public List<String> getMessages() {
		return new ArrayList<String>();
	}

	/**
	 * Sets the reference to the Personalization Context object that is
	 * to be used to access Personalization data and operations.
	 * 
	 * @param ctx	Reference to Personalization Context.
	 */
	public void setPersonalizationContext(IPersonalizationContext ctx) {
		m_persCtx = ctx;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -