Skip to content
28 changes: 28 additions & 0 deletions pkg/hessian2/enum/enum.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/*
* Copyright 2024 CloudWeGo Authors
*
* 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 enum

import (
hessian "github.com/apache/dubbo-go-hessian2"
)

const InvalidJavaEnum JavaEnum = -1

type JavaEnum hessian.JavaEnum
7 changes: 6 additions & 1 deletion pkg/hessian2/hessian2.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,11 @@ type (

func Register(pojos []interface{}) {
for _, i := range pojos {
hessian.RegisterPOJO(i.(hessian.POJO))
pojo, ok := i.(hessian.POJOEnum)
if ok {
hessian.RegisterJavaEnum(pojo)
} else {
hessian.RegisterPOJO(i.(hessian.POJO))
}
}
}