This is an automated email from the ASF dual-hosted git repository. dfoulks pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/activemq-nms-openwire-generator.git
commit d7467477e55d09bcc710834500936947f70d65f7 Author: Timothy A. Bish <[email protected]> AuthorDate: Mon Oct 12 15:36:01 2009 +0000 https://issues.apache.org/activemq/browse/AMQNET-193 Update the MessageId and ProducerId command generation to add some convenience methods. --- .../openwire/tool/commands/MessageIdGenerator.java | 84 ++++++++++++++++++++++ .../tool/commands/ProducerIdGenerator.java | 12 ++++ 2 files changed, 96 insertions(+) diff --git a/src/main/java/org/apache/activemq/nms/openwire/tool/commands/MessageIdGenerator.java b/src/main/java/org/apache/activemq/nms/openwire/tool/commands/MessageIdGenerator.java new file mode 100644 index 0000000..8decc9d --- /dev/null +++ b/src/main/java/org/apache/activemq/nms/openwire/tool/commands/MessageIdGenerator.java @@ -0,0 +1,84 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.activemq.nms.openwire.tool.commands; + +import java.io.PrintWriter; + +public class MessageIdGenerator extends CommandClassGenerator { + + protected void generateProperties( PrintWriter out ) { + + super.generateProperties(out); + + out.println(" private string key = null;"); + out.println(""); + } + + protected void generateConstructors( PrintWriter out ) { + + out.println(" public "+getClassName()+"() : base()"); + out.println(" {"); + out.println(" }"); + out.println(""); + out.println(" public "+getClassName()+"(ProducerId producerId, long producerSequenceId) : base()"); + out.println(" {"); + out.println(" this.producerId = producerId;"); + out.println(" this.producerSequenceId = producerSequenceId;"); + out.println(" }"); + out.println(""); + out.println(" public "+getClassName()+"(string value) : base()"); + out.println(" {"); + out.println(" this.SetValue(value);"); + out.println(" }"); + out.println(""); + + super.generateConstructors(out); + } + + protected void generateToStringBody( PrintWriter out ) { + + out.println(" if(key == null) "); + out.println(" {"); + out.println(" key = producerId.ToString() + \":\" + producerSequenceId;"); + out.println(" }"); + out.println(" "); + out.println(" return key;"); + } + + protected void generateAdditonalMembers( PrintWriter out ) { + + out.println(" /// <summary>"); + out.println(" /// Sets the value as a String"); + out.println(" /// </summary>"); + out.println(" public void SetValue(string messageKey)"); + out.println(" {"); + out.println(" this.key = messageKey;"); + out.println(""); + out.println(" // Parse off the sequenceId"); + out.println(" int p = messageKey.LastIndexOf(\":\");"); + out.println(" if(p >= 0)"); + out.println(" {"); + out.println(" producerSequenceId = Int64.Parse(messageKey.Substring(p + 1));"); + out.println(" messageKey = messageKey.Substring(0, p);"); + out.println(" }"); + out.println(" producerId = new ProducerId(messageKey);"); + out.println(" }"); + out.println(""); + + super.generateAdditonalMembers( out ); + } +} diff --git a/src/main/java/org/apache/activemq/nms/openwire/tool/commands/ProducerIdGenerator.java b/src/main/java/org/apache/activemq/nms/openwire/tool/commands/ProducerIdGenerator.java index 46db0eb..0093505 100644 --- a/src/main/java/org/apache/activemq/nms/openwire/tool/commands/ProducerIdGenerator.java +++ b/src/main/java/org/apache/activemq/nms/openwire/tool/commands/ProducerIdGenerator.java @@ -33,6 +33,17 @@ public class ProducerIdGenerator extends CommandClassGenerator { out.println(" this.value = consumerId;"); out.println(" }"); out.println(""); + out.println(" public "+getClassName()+"(string producerKey)"); + out.println(" {"); + out.println(" // Parse off the producerId"); + out.println(" int p = producerKey.LastIndexOf(\":\");"); + out.println(" if(p >= 0)"); + out.println(" {"); + out.println(" value = Int64.Parse(producerKey.Substring(p + 1));"); + out.println(" producerKey = producerKey.Substring(0, p);"); + out.println(" }"); + out.println(" }"); + out.println(""); super.generateConstructors(out); } @@ -58,6 +69,7 @@ public class ProducerIdGenerator extends CommandClassGenerator { out.println(" }"); out.println(""); + super.generateAdditonalMembers( out ); }
