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

📄 textmessageserializer.java

📁 关于 RFID 读写器的相关内容
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
	private void writeReplyLine(StringWriter writer,
			ReadPointListReturnType rpList) {
		List valueList = rpList.getReturnValue().getList().getValue();
		writeStringListLine(writer, valueList);
	}

	private void writeReplyLine(StringWriter writer,
			EventTypeListReturnValue evList) {
		List valueList = evList.getReturnValue().getList().getValue();
		writeStringListLine(writer, valueList);
	}

	private void writeReplyLine(StringWriter writer,
			TriggerTypeListReturnType trgList) {
		List valueList = trgList.getReturnValue().getList().getValue(); //?? stimmt dat nun?
		writeStringListLine(writer, valueList);
	}

	private void writeReplyLine(StringWriter writer,
			FieldNameListReturnType fnList) {
		List valueList = fnList.getReturnValue().getList().getValue();
		writeStringListLine(writer, valueList);
	}

	/**
	 * Serialize a ReadReport used in a reply.
	 * 
	 * @param writer
	 *            The output writer
	 * @param report
	 *            The ReadReport
	 */
	private void writeReplyLine(StringWriter writer, ReadReportType report) {

		List srcReportList = report.getSourceReport();
		Iterator srcReportIt = srcReportList.iterator();
		while (srcReportIt.hasNext()) {
			SourceReport srcReport = (SourceReport) srcReportIt.next();
			String sourceName = null;
			if (srcReport.getSourceInfo() != null) {
				SourceInfoType sourceInfo = srcReport.getSourceInfo();
				sourceName = sourceInfo.getSourceName();
			}
			List tagList = srcReport.getTag();
			Iterator tagListIt = tagList.iterator();
			// Add all tags
			while (tagListIt.hasNext()) {
				/*
				 * a Vector of Strings with all attributes that have to be
				 * reported
				 */
				Vector reportAttributes = new Vector();

				// --- Add the source name ---
				if (sourceName != null) {
					reportAttributes.add(sourceName);
				}

				// --- Add the tag properties ---
				TagType tag = (TagType) tagListIt.next();
				if (tag.getTagID() != null) {
					byte[] tagID = tag.getTagID();
					StringBuffer tagIDString = new StringBuffer();
					for (int i = 0; i < tagID.length; i++) {
						String hexString = Integer.toHexString(new Byte(tagID[i]).intValue()).toString().toUpperCase();
						if (hexString.length() == 1) {
							tagIDString.append("0");
						}
						tagIDString.append(hexString);
					}
					reportAttributes.add(tagIDString.toString());
				}
				if (tag.getTagIDAsPureURI() != null) {
					reportAttributes.add(tag.getTagIDAsPureURI());
				}
				if (tag.getTagIDAsTagURI() != null) {
					reportAttributes.add(tag.getTagIDAsTagURI());
				}
				if (tag.getTagType() != null) {
					reportAttributes.add(tag.getTagType());
				}

				// --- Add the tag events ---
				if (tag.getTagEvent() != null) {
					Iterator tagEventIt = tag.getTagEvent().iterator();
					while (tagEventIt.hasNext()) {
						TagEventType tagEvent = (TagEventType) tagEventIt
								.next();
						if (tagEvent.getEventType() != null) {
							reportAttributes.add(tagEvent.getEventType());
						}
						if (tagEvent.getTime() != null
								&& tagEvent.getTime().getEventTimeTick() != null) {
							reportAttributes.add(tagEvent.getTime()
									.getEventTimeTick());
						} else if (tagEvent.getTime() != null
								&& tagEvent.getTime().getEventTimeUTC() != null) {
							reportAttributes.add(toISO8601(xmlGregorianCalendarToCalendar(tagEvent.getTime()
									.getEventTimeUTC())));
						}
						// TODO: Should we really report the event triggers???
						// if (tagEvent.getEventTriggers() != null &&
						// tagEvent.getEventTriggers().getTrigger() != null) {
						// //add all the trigger names
						// EventTriggersType eventTrigger =
						// tagEvent.getEventTriggers();
						// Iterator eventTriggerIt =
						// eventTrigger.getTrigger().iterator();
						// while(eventTriggerIt.hasNext()) {
						// String triggerName = (String)eventTriggerIt.next();
						// reportAttributes.add(triggerName);
						// }
						// }

					}
				}

				// --- Add the tag fields ---
				if (tag.getTagFields() != null) {
					Iterator tagFieldIt = tag.getTagFields().iterator();
					while (tagFieldIt.hasNext()) {
						TagFieldValueParamType tfvp = (TagFieldValueParamType) tagFieldIt
								.next();
						// TODO: How to serialize the tagfield
						// name-value-pairs??
						if (tfvp.getTagFieldName() != null) {
							reportAttributes.add(tfvp.getTagFieldName());
						}
						if (tfvp.getTagFieldValue() != null) {
							reportAttributes.add(new String(tfvp
									.getTagFieldValue()));
						}
					}
				}

				// --- Serialize the tag line ---
				writeTagLine(writer, reportAttributes);
			}
		}
	}

	/**
	 * Serialize a ReadReport used in a notification.
	 * 
	 * @param writer
	 *            The output writer
	 * @param report
	 *            The ReadReport
	 */
	private void writeReplyLine(StringWriter writer,
			org.fosstrak.reader.rprm.core.msg.notification.ReadReportType report) {

		List srcReportList = report.getSourceReport();
		Iterator srcReportIt = srcReportList.iterator();
		while (srcReportIt.hasNext()) {
			org.fosstrak.reader.rprm.core.msg.notification.ReadReportType.SourceReport srcReport = (org.fosstrak.reader.rprm.core.msg.notification.ReadReportType.SourceReport) srcReportIt
					.next();
			String sourceName = null;
			if (srcReport.getSourceInfo() != null) {
				org.fosstrak.reader.rprm.core.msg.notification.SourceInfoType sourceInfo = srcReport
						.getSourceInfo();
				sourceName = sourceInfo.getSourceName();
			}
			List tagList = srcReport.getTag();
			Iterator tagListIt = tagList.iterator();
			// Add all tags
			while (tagListIt.hasNext()) {
				/*
				 * a Vector of Strings with all attributes that have to be
				 * reported
				 */
				Vector reportAttributes = new Vector();

				// --- Add the source name ---
				if (sourceName != null) {
					reportAttributes.add(sourceName);
				}

				// --- Add the tag properties ---
				org.fosstrak.reader.rprm.core.msg.notification.TagType tag = (org.fosstrak.reader.rprm.core.msg.notification.TagType) tagListIt
						.next();
				if (tag.getTagID() != null) {
					reportAttributes.add(new String(tag.getTagID()));
				}
				if (tag.getTagIDAsPureURI() != null) {
					reportAttributes.add(tag.getTagIDAsPureURI());
				}
				if (tag.getTagIDAsTagURI() != null) {
					reportAttributes.add(tag.getTagIDAsTagURI());
				}
				if (tag.getTagType() != null) {
					reportAttributes.add(tag.getTagType());
				}

				// --- Add the tag events ---
				if (tag.getTagEvent() != null) {
					Iterator tagEventIt = tag.getTagEvent().iterator();
					while (tagEventIt.hasNext()) {
						org.fosstrak.reader.rprm.core.msg.notification.TagEventType tagEvent = (org.fosstrak.reader.rprm.core.msg.notification.TagEventType) tagEventIt
								.next();
						if (tagEvent.getEventType() != null) {
							reportAttributes.add(tagEvent.getEventType());
						}
						if (tagEvent.getTime() != null
								&& tagEvent.getTime().getEventTimeTick() != null) {
							reportAttributes.add(tagEvent.getTime()
									.getEventTimeTick());
						} else if (tagEvent.getTime() != null
								&& tagEvent.getTime().getEventTimeUTC() != null) {
							reportAttributes.add(toISO8601(xmlGregorianCalendarToCalendar(tagEvent.getTime().getEventTimeUTC())));
						}
						// TODO: Should we really report the event triggers???
						// if (tagEvent.getEventTriggers() != null &&
						// tagEvent.getEventTriggers().getTrigger() != null) {
						// //add all the trigger names
						// org.fosstrak.reader.msg.notification.EventTriggersType
						// eventTrigger = tagEvent.getEventTriggers();
						// Iterator eventTriggerIt =
						// eventTrigger.getTrigger().iterator();
						// while(eventTriggerIt.hasNext()) {
						// String triggerName = (String)eventTriggerIt.next();
						// reportAttributes.add(triggerName);
						// }
						// }

					}
				}

				// --- Add the tag fields ---
				if (tag.getTagFields() != null) {
					Iterator tagFieldIt = tag.getTagFields().iterator();
					while (tagFieldIt.hasNext()) {
						org.fosstrak.reader.rprm.core.msg.notification.TagFieldValueParamType tfvp = (org.fosstrak.reader.rprm.core.msg.notification.TagFieldValueParamType) tagFieldIt
								.next();
						// TODO: How to serialize the tagfield
						// name-value-pairs??
						if (tfvp.getTagFieldName() != null) {
							reportAttributes.add(tfvp.getTagFieldName());
						}
						if (tfvp.getTagFieldValue() != null) {
							reportAttributes.add(new String(tfvp
									.getTagFieldValue()));
						}
					}
				}

				// --- Serialize the tag line ---
				writeTagLine(writer, reportAttributes);
			}
		}
	}

	/**
	 * Writes a tag line of a read report to the output writer. The attributes
	 * are delimited by ","
	 * 
	 * @param writer
	 *            The output writer
	 * @param reportAttributes
	 *            A Vector of String with the attributes.
	 */
	private void writeTagLine(StringWriter writer, Vector reportAttributes) {
		StringBuffer sBuf = new StringBuffer();
		Iterator attributesIt = reportAttributes.iterator();
		while (attributesIt.hasNext()) {
			sBuf.append((String) attributesIt.next());
			if (attributesIt.hasNext()) {
				sBuf.append(COMMA);
			}
		}
		writeReplyLine(writer, sBuf.toString());
	}

	/**
	 * Serialize all non-void ReaderDevice commands.
	 * 
	 * @param reply
	 * @return
	 */
	private String serializeReaderDevice(ReaderDeviceReply reply) {
		StringWriter writer = new StringWriter();
		if (reply.getGetEPC() != null) {
			EpcReturnType epcType = reply.getGetEPC();
			writeReplyLine(writer, epcType.getReturnValue().getValue());
		} else if (reply.getGetManufacturer() != null) {
			writeReplyLine(writer, reply.getGetManufacturer());
		} else if (reply.getGetModel() != null) {
			writeReplyLine(writer, reply.getGetModel());
		} else if (reply.getGetHandle() != null) {
			writeReplyLine(writer, reply.getGetHandle());
		} else if (reply.getGetName() != null) {
			writeReplyLine(writer, reply.getGetName());
		} else if (reply.getGetRole() != null) {
			writeReplyLine(writer, reply.getGetRole());
		} else if (reply.getGetTimeTicks() != null) {
			writeReplyLine(writer, reply.getGetTimeTicks());
		} else if (reply.getGetTimeUTC() != null) {
			writeReplyLine(writer, reply.getGetTimeUTC());
		} else if (reply.getGetManufacturerDescription() != null) {
			writeReplyLine(writer, reply.getGetManufacturerDescription());
		} else if (reply.getGetCurrentSource() != null) {
			SourceReturnType src = reply.getGetCurrentSource();
			writeReplyLine(writer, src.getReturnValue());
		} else if (reply.getGetCurrentDataSelector() != null) {
			DataSelectorReturnType ds = reply.getGetCurrentDataSelector();
			writeReplyLine(writer, ds.getReturnValue());
		} else if (reply.getGetSource() != null) {
			SourceReturnType src = reply.getGetSource();
			writeReplyLine(writer, src.getReturnValue());
		} else if (reply.getGetAllSources() != null) {
			writeReplyLine(writer, reply.getGetAllSources());
		} else if (reply.getGetDataSelector() != null) {
			DataSelectorReturnType ds = reply.getGetDataSelector();
			writeReplyLine(writer, ds.getReturnValue());
		} else if (reply.getGetAllDataSelectors() != null) {
			writeReplyLine(writer, reply.getGetAllDataSelectors());
		} else if (reply.getGetNotificationChannel() != null) {
			NotificationChannelReturnType nc = reply
					.getGetNotificationChannel();
			writeReplyLine(writer, nc.getReturnValue());
		} else if (reply.getGetAllNotificationChannels() != null) {
			writeReplyLine(writer, reply.getGetAllNotificationChannels());
		} else if (reply.getGetTrigger() != null) {

⌨️ 快捷键说明

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