/*****************************************************************************
*
* Copyright (C) Zenoss, Inc. 2010-2011, all rights reserved.
*
* This content is made available according to terms specified in
* License.zenoss under the directory where your Zenoss product is installed.
*
****************************************************************************/
package org.zenoss.zep.rest;
import com.google.protobuf.ExtensionRegistry;
import com.google.protobuf.Message;
import org.zenoss.protobufs.rest.ProtobufMessageRegistry;
import org.zenoss.protobufs.zep.Zep.DaemonHeartbeatSet;
import org.zenoss.protobufs.zep.Zep.Event;
import org.zenoss.protobufs.zep.Zep.EventDetailItem;
import org.zenoss.protobufs.zep.Zep.EventDetailItemSet;
import org.zenoss.protobufs.zep.Zep.EventDetailSet;
import org.zenoss.protobufs.zep.Zep.EventFilter;
import org.zenoss.protobufs.zep.Zep.EventNote;
import org.zenoss.protobufs.zep.Zep.EventQuery;
import org.zenoss.protobufs.zep.Zep.EventSummaryRequest;
import org.zenoss.protobufs.zep.Zep.EventSummaryUpdate;
import org.zenoss.protobufs.zep.Zep.EventSummaryUpdateRequest;
import org.zenoss.protobufs.zep.Zep.EventSummaryUpdateResponse;
import org.zenoss.protobufs.zep.Zep.EventTagSeveritiesSet;
import org.zenoss.protobufs.zep.Zep.EventTrigger;
import org.zenoss.protobufs.zep.Zep.EventTriggerSubscriptionSet;
import org.zenoss.protobufs.zep.Zep.ZepConfig;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ProtobufMessageRegistryImpl implements ProtobufMessageRegistry {
private final Map<String, Message> messageByFullName = new HashMap<String, Message>();
private final ExtensionRegistry registry;
public ProtobufMessageRegistryImpl(ExtensionRegistry extensionRegistry) {
this.registry = extensionRegistry;
List<? extends Message> messages = Arrays.asList(
EventTrigger.getDefaultInstance(),
EventNote.getDefaultInstance(),
EventSummaryRequest.getDefaultInstance(),
EventSummaryUpdateRequest.getDefaultInstance(),
EventSummaryUpdateResponse.getDefaultInstance(),
EventSummaryUpdate.getDefaultInstance(),
EventTriggerSubscriptionSet.getDefaultInstance(),
EventTagSeveritiesSet.getDefaultInstance(),
EventQuery.getDefaultInstance(),
EventDetailSet.getDefaultInstance(),
EventDetailItemSet.getDefaultInstance(),
EventDetailItem.getDefaultInstance(),
ZepConfig.getDefaultInstance(),
EventFilter.getDefaultInstance(),
DaemonHeartbeatSet.getDefaultInstance(),
Event.getDefaultInstance());
for (Message message : messages) {
messageByFullName.put(message.getDescriptorForType().getFullName(),
message);
}
}
@Override
public Message getMessageByFullName(String fullName) {
return messageByFullName.get(fullName);
}
@Override
public ExtensionRegistry getExtensionRegistry() {
return registry;
}
}